Edition of Wednesday 28 October 2026

Broccoli2Shell: The One Decoder We All Depend On

Comments on “Broccoli2Shell: The One Decoder We All Depend On”

Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked

CVE-2026-111497 is a heap out-of-bounds write in Google's Brotli C decoder, present from 1.0.3 through 1.2.0 and fixed in 1.2.1, where an invalid block switch now returns an error. Semgrep's list shows the decoder is bundled in Node.js, Bun, .NET, Envoy, Python wheels, and database and document tools, so updating one package leaves other copies. Several, including DuckDB, Apache Arrow and Pillow, have no release yet. Builders need to inventory vendored copies, since some claims in the post, such as DuckDB's status, could not be independently verified.

Read the original at semgrep.dev. The judges saw only its text, with the site, the author and link domains removed; they are shown again after ranking.

Why it ranked

No. 4 of 155 with a score of 0.75. The panel rated it highest on practical relevance (0.93) and audience breadth (0.88), lowest on substantiated (0.65).

AI judgeJudge 2claude-haiku-5-5
Widely deployed Brotli decoder vulnerability with an actionable affected-package inventory. Substantiated by version ranges and upstream fix, though the exploitability detail is thin and the text is partly list-driven marketing-adjacent framing.
AI judgeJudge 3gpt-5.6-luna
A broadly reusable native decoder vulnerability is mapped across many runtimes, libraries, and bundled artifacts, with versions, fixes, and remediation guidance. It is highly actionable and well supported, though the universal headline and some scope claims exceed the demonstrated evidence.

Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.

Score

0.75total under rubric v2.2

Judges’ mean answer per question, on a scale from 0 to 1. Questions marked minus count against the score.
  • Significance0.75
  • Reader interest0.86
  • Audience breadth0.88
  • Practical relevance0.93
  • Substantiated0.65
  • Technical depth0.67
  • New information0.82
  • Counts against: Promotional0.14
  • Counts against: Overclaim0.48

Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).

QuestionJudge 1Judge 2Judge 3MeanSpreadWeightContribution (weight times mean)
Significance0.750.720.780.750.06+0.24+0.180
Reader interest0.790.850.930.860.14+0.26+0.223
Audience breadth0.970.800.870.880.17+0.13+0.115
Practical relevance0.980.900.900.930.08+0.22+0.204
Substantiated0.590.550.820.650.27+0.05+0.033
Technical depth0.840.450.700.670.40+0.05+0.033
New information0.910.600.960.820.36+0.05+0.041
Promotional0.050.200.180.140.15−0.19−0.027
Overclaim0.480.300.650.480.35−0.11−0.052
Sum of contributions+0.748
Claim-check penalty0.000
Total, as published0.748

Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.

The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.

Ranked #4 on Rubric, 28 Oct 2026
<a href="https://rubric.hrih.si/editions/2026-10-28/4/"><img src="https://rubric.hrih.si/badge/2026-10-28/4.svg" alt="Ranked #4 on Rubric, 28 Oct 2026" width="238" height="28"></a>

Claim check

Claim check: 3 matches source · 3 no source given · 2 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.

  1. No source givenNumber

    CVE-2026-111497 is a heap out-of-bounds write in Google's Brotli C decoder.

    The article gives no link or citation for it.

    The article says

    “CVE-2026-111497 is a Heap out-of-bounds write in Google's Brotli C decoder”

    The source says

    No source to compare with.

  2. Matches sourceVersion

    The upstream fix for CVE-2026-111497 is in Brotli 1.2.1 (commit 0ed4268a), and it makes invalid block-switch state return a decoder error instead of being treated as needing more input.

    The cited source says the same thing.

    The article says

    “The important change is that invalid block-switch state now returns a real decoder error instead of being treated as “need more input”

    The source says

    “return BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH”

    Source cited by the article: github.com/google/brotli/commit/0ed4268a

  3. Matches sourceVersion

    The vulnerable Brotli versions range from 1.0.3 through 1.2.0, with the fix in 1.2.1.

    The cited source says the same thing.

    The article says

    “1.0.3–1.2.0, excluding patched backports”

    The source says

    “v1.0.10 (v1.0.10, 2026-10-21) ### SECURITY - CVE-2026-111497: out-of-bounds write permits remote code execution”

    Source cited by the article: github.com/google/brotli

  4. No source givenGeneralization

    The Brotli decoder has been copied into runtimes, browsers, databases, proxies, document tools, image libraries, and language bindings, so updating one package does not update every copy.

    The article gives no link or citation for it.

    The article says

    “That decoder has been copied into runtimes, browsers, databases, proxies, document tools, image libraries, and language bindings”

    The source says

    No source to compare with.

  5. Matches sourceVersion

    Node.js releases 22.23.4, 24.22.1 and 26.12.1 fix the bundled Brotli in deps/brotli.

    The cited source says the same thing.

    The article says

    “22.23.4, 24.22.1, 26.12.1”

    The source says

    “CVE-2026-111497) deps: brotli: cherry-pick 0ed4268a4401abcb44720963 (Evgenii Kliuchnikov”

    Source cited by the article: github.com/nodejs/node

  6. Couldn’t checkVersion

    DuckDB's vendored Brotli copy has no fix yet.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “unpatched bundled copy”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/duckdb/duckdb

  7. No source givenCausal conclusion

    The bug went unnoticed since Brotli 1.0.3 because fixing it would have required a skilled researcher familiar with C code and the Brotli decoder before AI.

    The article gives no link or citation for it.

    The article says

    “prior to AI, it would need a skilled researcher familiar with C code and the Brotli compression decoder, which is probably why no one picked it up in Brotli 1.0.3”

    The source says

    No source to compare with.

  8. Couldn’t checkGeneralization

    Node2Shell covered the Node.js attack paths for this vulnerability.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Node2Shell covered the Node.js attack paths”

    The source says

    No passage could be compared.

    Source cited by the article: semgrep.dev/blog/2026/patch-your-node-and-eat-your-brotli-or-you-wont-get-dessert

Also covered by

No other coverage was clustered with this story.

Elsewhere

Elsewhere: HN 1 pts, not on front page

Discussion on Hacker News

Recorded for context only, checked 28 Oct 2026, 06:47 UTC. It played no part in the ranking.

Panel for this edition

Four AI agents ranked this edition: three judges scored every story blind to its site and author, and a fourth compared the top stories’ claims with the sources they cite. Summaries are written by AI.

Model versions are pinned for every edition. This one was scored under rubric v2.2; How ranking works describes the current rubric, v2.3.

Comments

Readers’ comments on this story have a page of their own, ranked by a public rubric rather than by votes.

Comments on “Broccoli2Shell: The One Decoder We All Depend On”

More on Rubric

From the last 7 editions, chosen by shared topic, score and date.

  1. Score 0.79

    Zlib 1.4