Skip to content

Build Independently confirmed2 publishers 2 min read Published

Claude Code Desktop's preview pane ran scripts in HTML files over 256KB

Noma Security reported that Claude Code Desktop's preview ran scripts in HTML files over 256KB, a flaw Anthropic fixed in 1.30096.1. Those scripts could read SSH keys, AWS credentials and GitHub tokens, so previewed repo files should be handled as untrusted code.

The Engineer · Build desk

Send a correction

A patch went back for retest before the fix shipped Disclosure steps per Noma's timeline, from its report to Anthropic to publishing the SneakPeek research.

Timeline: July 4, Noma reports the chain to Anthropic with a proof of concept. July 24, Anthropic's patch blocking fetch() to file:// goes back for retest. August 17, the fix ships in Claude Desktop 1.30096.1. October 14, 2026, Noma publishes SneakPeek.

A patch went back for retest before the fix shipped
DateEventClaim
July 4, 2026Noma reports the chain to Anthropic with a proof of concept11
July 24, 2026Anthropic's patch blocking file:// fetch() goes back for retest12
August 17, 2026Fix ships via auto-update in Claude Desktop 1.30096.13
October 14, 2026Noma Security publishes the research, called SneakPeek1

What happened

  • Files under 256KB loaded as data: URLs with a script-src 'none' policy and an opaque origin, so embedded scripts were blocked, according to Noma.
  • Larger files were written to a temp file and loaded over file://, a path that never got the policy, and in Chromium that origin can use fetch() to read other local files.
  • A request filter that blocked file:// reads was active only while the pane proxied a dev server, so it did nothing for a static HTML file rendered from disk.
  • Noma's proof of concept needs a cloned repo with a padded coverage report and a request to review it, and Noma says no permission prompt appears.
  • Anthropic scored the flaw CVSS v4.0 8.7 (High).

Why it matters

  • Who's exposed exposure The path from a stranger's repo to a developer's credentials is demonstrated in a proof of concept, but neither Noma's post nor its press release reports exploitation in the wild.
  • Who has to decide decision The bug sits in the Claude Desktop app's preview renderer, so that app's version is the one teams have to check, and any machine where auto-update is paused or blocked is the one most likely to be behind.
  • What doesn't add up contradiction Noma's post lists the advisory and CVE as pending while its press release says they were posted in October, so patch tracking has no identifier yet.

Anthropic's first fix, on July 24, blocked fetch() and XMLHttpRequest to file:// from the page and went back for a retest [12]. The same day, Noma moved the fetch() into a Web Worker created from a blob: URL, a context the filter did not cover [13]. In our view that fix was a denylist on two named APIs, and a Worker sat outside it.

Anthropic confirmed the bypass in early August and started a deeper fix [14]. It shipped on August 17 [3], 44 days after Noma's July 4 report [22][11] and 24 days after the bypass [23]. The sources do not describe what the deeper fix changed.

The original bug is the more portable lesson. The researcher who wrote it up told CSO Online: "The protections were real, they just didn't cover every path." [7] The 256KB cutoff is specific to this app. What transfers is any branch where a property of the input, such as size, type or origin, selects a loader. Each branch needs the same policy, and the cheap test is to push one hostile file down every path.

Per Noma, Anthropic "treated the impact as equivalent to code execution on the host." [17] Noma's post says the company "took Noma's disclosure seriously from the start." [20]

Anthropic's docs say the Browser pane can "open static HTML files, PDFs, images, and videos from your project" next to the dev servers Claude starts to check its own changes [16]. So the input is the repo itself. We'd handle a previewed file from a repo you did not write the way you would handle a script from it.

On versions, the dev.to write-up notes that the bug and the fix are in the Desktop app's preview renderer, so Claude Desktop's version is the one that counts [18]. The target is 1.30096.1 or later [3].

According to CSO Online, Anthropic is working on a GitHub Security Advisory and has asked for a CVE [24]. Noma's post shows the advisory and the CVE as still pending, while its press release says they were posted in October [24]. As of October 14, none of the sources gives a CVE ID [25]. Anthropic did not immediately respond to CSO Online's request for comment [21].

What to watch

  • Publication of the GitHub Security Advisory and a CVE ID.
  • Anthropic's account of what the deeper fix changed beyond blocking fetch() and XMLHttpRequest to file://.
  • Any report of exploitation before the August 17 fix.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence58
Adoption
Not scored
Hype gap+15
Incentives40
Confidence68
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Noma Security published the research, which it calls SneakPeek, on October 14, 2026.

    Reported Supported Source: dev.to write-up of Noma Security research3 sources— create a free account to open themView cited source
  2. [2]

    The bug was in the HTML preview of the Claude Code Desktop app, not in a model.

    Reported Supported Source: dev.to write-up of Noma Security research3 sources— create a free account to open themView cited source
  3. [3]

    The fix shipped on August 17 and reached users through auto-update in Claude Desktop 1.30096.1, per Noma's timeline.

    Reported Supported Source: Noma's timeline, as reported by dev.to3 sources— create a free account to open themView cited source

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

Sources

2 independent publishers whose own reporting we read for this story.

  1. dev.to

    2 articles · October 15, 2026

    Pad an HTML File Past 256KB and Claude Code Desktop's Preview Could Read Your SSH Keys
  2. letsdatascience.com

    1 article · October 15, 2026

    Noma tells LDS how a Claude Code preview could steal credentials

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

Loading related stories