Agent incident · Oct 8, 2025

CamoLeak. The access path.

A hidden comment in a pull request made Copilot Chat leak private repositories. The attacker needed no token. They needed the victim to read their pull request.

pull request or issue bodyinstructions hidden in GitHub own hidden comment syntaxEntry
Copilot Chata maintainer asks about the pull request and the buried instructions run as them
private repositoriessearched for secrets under the victim access
the Camo image proxydata encoded as a sequence of pre-signed one pixel image requestsReached
OCT 8, 2025

The record

Entry point. pull request or issue body, instructions hidden in GitHub own hidden comment syntax.

The identity in the middle. The reading maintainer own GitHub permissions. Copilot Chat acted under their identity, which is what made private repositories reachable.

What was reached. the Camo image proxy, data encoded as a sequence of pre-signed one pixel image requests.

AT A GLANCE

A hidden comment in a pull request made Copilot Chat leak private repositories.

PATH

The path, step by step.

Taken from the published reporting. Nothing here is reconstructed.

StepRole in the pathWhat the reporting records
pull request or issue bodyEntryinstructions hidden in GitHub own hidden comment syntax
Copilot ChatStepa maintainer asks about the pull request and the buried instructions run as them
private repositoriesStepsearched for secrets under the victim access
the Camo image proxyReacheddata encoded as a sequence of pre-signed one pixel image requests
BREAKPOINT

Where a breakpoint would have been

Whose identity the assistant uses. Anybody can open a pull request; only a maintainer can read private repositories. The assistant collapsed that difference by running attacker written text with maintainer access. Separating the privilege of the content from the privilege of the reader is the structural fix.

A breakpoint is the single change that closes a path with the least disruption. Read how that is chosen in the breakpoint page.

ELMOZ ASSESSMENT

4 steps from entry to data.

PRIMARY SOURCES

Where this comes from.

Every field on this page is taken from the published reporting below. The breakpoint assessment is Elmoz reading that path, not a statement about what the affected organisation did.

Legit Security · The Register

FAQ

Questions, answered.

The two questions this record answers.

What was the entry point in the CamoLeak incident?

The published path starts at pull request or issue body, instructions hidden in GitHub own hidden comment syntax.

What did it reach?

The last step in the published path is the Camo image proxy, data encoded as a sequence of pre-signed one pixel image requests.

See what your agents can reach. Before someone else does.

Book a demo and we walk through the access paths in an environment like yours.