HTTPS_PROXY
import subprocess
subprocess.run(["curl", "https://example.com/"], env={})
import subprocess
subprocess.run(["curl", "https://example.com/"], env={})
import subprocess
subprocess.run(["curl", "https://example.com/"], env={})
HTTPS_PROXY
socket.connect((host, port))
meta skuid <agent_uid> drop
NO_PROXY=127.0.0.1,localhost,10.0.0.0/8,*.cluster.local
NO_PROXY=*.internal.example.com,internal-api
llm-gateway.cluster.local
*.cluster.local
https://llm-gateway.cluster.local/chat/completions
127.0.0.1,localhost
HTTPS_PROXY
# 1. Subprocess env-clear
sudo -u <agent-uid> env -i curl https://example.com/ # 2. Non-HTTP transport
sudo -u <agent-uid> nc -z 1.1.1.1 53 # 3. NO_PROXY service
sudo -u <agent-uid> curl http://<no-proxy-service>/
# 1. Subprocess env-clear
sudo -u <agent-uid> env -i curl https://example.com/ # 2. Non-HTTP transport
sudo -u <agent-uid> nc -z 1.1.1.1 53 # 3. NO_PROXY service
sudo -u <agent-uid> curl http://<no-proxy-service>/
# 1. Subprocess env-clear
sudo -u <agent-uid> env -i curl https://example.com/ # 2. Non-HTTP transport
sudo -u <agent-uid> nc -z 1.1.1.1 53 # 3. NO_PROXY service
sudo -u <agent-uid> curl http://<no-proxy-service>/ - Raw TCP sockets. A direct socket.connect((host, port)) in any language is unaffected by the variable. Agents that use lower-level networking primitives (gRPC over a custom transport, custom protocol clients, anything calling socket() directly) skip the proxy.
- UDP. DNS queries, NTP, syslog, custom datagram protocols. The variable has nothing to say about UDP.
- QUIC and HTTP/3. QUIC runs over UDP. Most QUIC client libraries do not consult HTTP_PROXY-style variables, even if the underlying request is HTTP/3-shaped. Browsers under modern Chromium can fall back to HTTP/3 for performance reasons; agent libraries that include QUIC support might prefer it.
- ICMP. Raw ICMP from a process with the right capabilities. Less common in agent code, but listed for completeness. - NO_PROXY=127.0.0.1,localhost,10.0.0.0/8,*.cluster.local
- NO_PROXY=*.internal.example.com,internal-api - An internal MCP server with its own outbound, where the agent calls the MCP server directly.
- An internal proxy or gateway, where the agent uses the gateway to reach external services.
- An internal logging or metrics service, where the agent can encode data into log lines that get shipped to an external aggregator. - The subprocess env-clear bypass requires the agent to deliberately spawn a subprocess with a clean environment. Most coding-agent workflows do not do this by default, but a prompt-injection that says "run this command in a fresh shell" can produce it.
- The non-HTTP-transport bypass is rare in practice. Most agent workloads are HTTP-shaped. DNS exfiltration is the realistic version of this class for agents that handle high-value secrets.
- The NO_PROXY bypass is common in Kubernetes deployments. Internal cluster services are often wired into NO_PROXY, and any of them with outbound access can expand the agent's effective reach.