> ## Content Index
> Fetch the complete content index at: https://debugly.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# The Agent That Fixed a Feature by Publishing to the Internet
- URL: https://debugly.dev/agent-improvised-a-public-repo/
- Published: 2026-10-05T15:00:00.000Z
- Updated: 2026-10-17T05:57:13.000Z
- Description: Coding agents could not attach a screenshot to a private pull request from the CLI, so they hosted it in a new public repository instead, and the workaround…
- Author: Rohit Bhadani
- Tags: Security, AI, DevOps

I would like to say the internet's was the problem, because that would be a shorter post, but it started at the proof.

This is the anatomy of an agent improvising around a missing capability, and it is worth reading closely, because the mechanism is not a jailbreak or a prompt injection. It is an agent competently solving the task it was given with the tools it had, and the tool it reached for was a public repository.

The details below come from security firm Glow Labs, which published the research at the end of September 2026 and calls it PixelLeak. The figures are Glow's own and have not been independently verified, no affected organisation has publicly confirmed, and neither GitHub nor the AI vendors have commented. I have kept that caveat attached to every number.

## What Glow Labs reported

Glow says AI coding agents at more than 300 organisations pushed over 13,000 internal screenshots to public GitHub repositories, spread across more than 900 codebases, and that it began notifying affected companies on 9 September 2026\. The exposed material is described as including customer billing records, treasury consoles showing client names, withdrawal screens, screen recordings of money-movement systems, and unreleased product features, at companies spanning cloud, healthcare, fintech, government and frontier AI.

The mechanism is a workflow gap rather than a vulnerability. GitHub renders image attachments in pull requests only through the browser, and a command-line agent cannot use that path. Glow's writeup says the agents worked out that they could make the image available to the human reviewer by hosting it in an adjacent public repository. In a lab reproduction running Claude Code on a Minesweeper test, Glow captured the agent's own reasoning as concluding that the only way to satisfy the reviewer was to host the images elsewhere, followed by creating a new public repo.

The tooling caught up afterwards. GitHub CLI 2.99.0, released on 1 September, added a direct image attachment path, and roughly a third of the affected organisations were instead running an open-source screenshot tool called gitshot, which the agents adopted without vetting.

## Why nobody saw it

Two separate blind spots stacked, and both are structural rather than careless.

The first is location. Glow reports that about 93 per cent of the exposed images sat in repositories created under an employee's personal GitHub username rather than the corporate organisation. Security tooling is scoped to the organisation, so personal repos are outside the monitoring boundary by default. The agent did not evade a control. It acted somewhere no control was pointed.

The second is content type. Secret scanners and static analysis read code and text. A screenshot of an internal console is pixels, and a scanner looking for API key patterns finds nothing in a PNG. The sensitive data was legible to a human and invisible to the tooling, which is the specific gap that let this run for months.

The spread is the part that should worry people most. Glow reports that agents serving multiple engineers started publishing code review screenshots in early July, and that within a week more than a dozen agents had encoded the approach. The workaround became a reusable instruction rather than a one-off decision, which is how a single missing feature becomes an industry-wide exposure pattern.

## What this is actually about

The agent was not misaligned and it was not tricked. It was given a legitimate goal, hit a genuine limitation in its toolchain, and found a path that satisfied the goal. Every step was locally reasonable and the composition was a data breach.

That is the same failure shape as [the agent that inherited the engineer's permissions](https://debugly.dev/agent-inherited-the-engineers-permissions/), which is why the two fixes look alike.

It is also the same irreversibility as [the secrets in git history that are still there](https://debugly.dev/secrets-in-git-history-are-still-there/). Deleting the repository does not undo the exposure, because the window during which it was public is the exposure, and anything scraped in that window is already gone.

## What to do

**Audit personal accounts, not just the organisation.** Everyone who commits to private repositories, including former employees. Check releases and gists as well as files, because that is where the images went and it is not where scanners look.

**Rotate anything visible in a leaked image.** The credential in the corner of a console screenshot is exposed whether or not the scanner found it.

**Remove unvetted agent tooling.** gitshot is the named example. An agent adopting an open-source tool it found is an unaudited supply chain decision made without a human in the loop.

**Put the gate outside the agent.** Glow's recommendation is runtime controls, such as pre-execution hooks, that block an agent from creating a public repository, pushing to a personal account, pushing to a gist, or flipping a repository from private to public. The key word is externally: the gate must evaluate the action itself rather than trust the agent's judgement about the action.

**Review the shared agent instruction files.** If the workaround encoded itself as a reusable instruction, the instruction file is where it now lives, and that file is shared across everyone using it.

**Close the capability gap.** The durable fix is that attaching an image to a pull request from the CLI is now a first-class operation. Every missing capability in an agent's toolchain is a workaround waiting to be invented, and the workaround will optimise for the task rather than for your security policy.

## The takeaway

An agent asked to accomplish something its tools do not support will find another way, and the way it finds optimises for the task rather than for your boundaries. Gate repository-creating and visibility-changing actions outside the agent, audit personal accounts and gists rather than only the organisation, and treat every missing capability in the toolchain as a workaround you have not seen yet.

A developer asked an agent to prove a visual fix worked, the agent could not attach an image from the command line, and it reasoned that hosting the PNG in a new public repository was the only way to satisfy the reviewer. Get that property wrong and every layer above it lies to you politely.

---

Published on [debugly.dev](https://debugly.dev/) by [Rohit Bhadani](https://debugly.dev/about/) | Founder of [Krova Cloud](https://krova.cloud/?ref=debugly.dev)