On top of that, the brotli library saw no releases for almost a full year, with the fix for this vulnerability being committed back in February. Google builds from main for all their projects, so were unaffected, but open source releases are a complete afterthought. Over 100 commits with miscellaneous fixes left languishing until a security incident forces a release.
Evolving Threat: http2shell is an RCE in Node, Python, and more (nitter.click)
mirashii a day ago
CodesInChaos a day ago
On the decompression side yes, on the compression side the first good zstd rust port was announced yesterday. Until then, brotli was better supported in Rust than zstd.
But I agree, decompression libraries should be (mostly) memory safe nowadays, since that side is both easier to implement and more likely to be vulnerable.
pjmlp a day ago
However I guess testing isn't that great, probably.
kccqzy 21 hours ago
mirashii 16 hours ago
https://www.imperva.com/blog/node2shell-from-brotli-data-to-...
There's also a public POC here, though with the caveat that they demonstrated it only on builds with weaker configurations. https://github.com/dimasma0305/CVE-2026-111497-POC
All that said, we haven't heard the major cloud providers or security labs saying they've seen exploitation in the wild yet.
ataraxia937 a day ago
For clients? Sure, that's a bigger risk. Patch them. But bad guys aren't attacking your clients unless the clients connect to them. Don't stay up late to fix this.
(And yes, .NET is included here, because Microsoft's Brotli module is a binding for Google's vulnerable reference implementation.)
bbor a day ago
I can't find download numbers for extras, but it comes in the pretty dang innocuous-seeming `aiohttp[speedups]`, as well. Also `urllib3[brotli]`. Many, many people will be running these servers without recognizing the name of the library, especially in the agentic era.
I might be missing something obvious in your message, cause I don't see why server/client is relevant. Why would a frontend app speak a protocol that the backend doesn't?
deathanatos a day ago
Sure, people should check their dependency trees, and make informed decisions.
bbor a day ago
Sure, we can't say for sure that all 4 million of the jobs who downloaded (not built-with, but downloaded to cache anew) this library yesterday are running public-facing servers. But what subset of them might be? How much would it take before it's a concern?
Python feels particularly worrisome to me, as those are the kind of casually-setup servers on local dev boxes for some random little tool that are the most fertile ground for an exploit like this, where creds could be spread around in plaintext and malware could go unnoticed for a long time. And, of course, where the developers responsible probably aren't in the habit of watching the CVE list (yet...).
I hope I'm not coming across as rude -- I am honestly curious!
vinyl7 a day ago
bbor a day ago
babuskov a day ago
shakna a day ago
If so, might be vulnerable.
Don't have Brotli enabled? Not vulnerable to this.
guac a day ago
Koffiepoeder a day ago
FreakLegion a day ago
It'll happen sooner or later, but all signs are that this was first and foremost a process nightmare. It wasn't another Log4Shell.
olabyne a day ago
FreakLegion 13 hours ago
anonymous908213 a day ago
lovich a day ago
vinkelhake a day ago
mhio a day ago
weinzierl a day ago
judge2020 a day ago
Waterluvian a day ago
card_zero a day ago
aaronbrethorst a day ago
ks2048 a day ago
nevir a day ago
duxup a day ago
I actually kinda like how that works.
cowlevel a day ago
my-huge-pony a day ago
rvanlaar a day ago
The python package has already been updated to 1.2.1. https://pypi.org/project/brotli/1.2.1/
Gigachad a day ago
Another day another out of bounds access in C code.
ks2048 a day ago
red75prime a day ago
therein a day ago
cowlevel a day ago
hatthew a day ago
Gigachad a day ago
tdeck a day ago
The risk is that if people keep seeing headlines about some vuln emergency that isn't in fact exploitable in most cases they'll just start to ignore them.
cowlevel a day ago
oofbey a day ago
kccqzy a day ago
And this commit contained a refactoring from BROTLI_BOOL to BrotliDecoderErrorCode so the situation was that probably one of the error conditions previously simply returned false but needed more detail about what went wrong to continue safely.
Well okay this change from `if (prev_ix < cur_ix)` to `if (prev_ix < cur_ix && cached_backward <= max_backward)` is also suspicious and could be an related or unrelated hardening fix.
adzm a day ago
cowlevel a day ago
https://nitter.jaydenha.uk/OpenAI/status/2113766354386084338
dofm a day ago
SV_BubbleTime a day ago
robswc a day ago
Every single time one of these labs does something it is almost always sensationalized. They absolutely cannot refrain from describing how incredible their models are, it has to be injected into everything. I get this is basic grow-your-company stuff but it is getting obnoxious.
dofm a day ago
Though I got told off for saying it maybe too snarkily, I also think that when well-paid, high-profile employees of one of these LLM as a service companies post in controversial or notable ways that could affect the perception of their employer’s products, we should consider that they are acting as a spokesperson. Any tweet where you might think “do I need to consider how this relates to my employer’s SEC filings” is PR. Just because they are acting in informal ways doesn’t mean it’s personal opinion; we shouldn’t give it maximum benefit of the doubt.
Similarly, I think we have to consider that Patch The Planet may be vulnerable to perverse incentives.
robswc 17 hours ago
Sytten a day ago
doodlesdev a day ago
octoberfranklin a day ago
Aren't you glad cargo connects to the network whenever it feels like it? I just love it when my build tool does that.
There are 753 crates that drag in brotli this way: https://lib.rs/crates/curl/rev
The real killer is the oath crate. Basically every rust project using OAuth is vulnerable. That's 398 projects on crates.io plus who knows how many binaries (a lot of non-library projects don't bother publishing to crates.io).
Another scary one is "a practical HTTP client that is fun" https://lib.rs/crates/isahc used in 317 crates including sequoia. In case you wanted somebody to steal your private keys.
iracigt a day ago
Very easy to reproduce the with a single httpx.get(URL) in Python, but I couldn’t figure out an ASLR bypass from that context. Crashing is easy and I (with LLM assistance) can get some read/write primitives, but no chain into getting a function pointer where I needed it. Probably needs heap manipulation, but I lost interest at that point.
Really hoping we see an actual RCE PoC. Also, the open weight models can easily provide a "regression test" that would shoo away most crawlers.
oofbey a day ago
iracigt 18 hours ago
As a practical matter, the impact could be pretty low. Very few things would accept brotli encoded data from a client. A PoC also doesn’t have to be for any particularly common configuration.
I’m someone who really enjoys reading Google’s Project Zero blog posts where they regularly walk through building exploits for phones and browsers. It gives you an appreciation for what is possible.
cowlevel a day ago
thayne a day ago
VladVladikoff a day ago
Is it really so hard to write a 2 sentence tweet that you need an AI to do it for you?
kylepomykala a day ago
hoppp a day ago
awakeasleep a day ago
hoppp a day ago
chelmzy a day ago
hoppp 21 hours ago
What is the source of truth? If the LLM auto discovers when it needs to mitigate then it can get prompt injected. It's basically a backdoor into the system.
brazukadev a day ago
Gigachad a day ago
cpburns2009 a day ago
dboreham a day ago
and this is the actual CVE report, which doesn't say much: https://www.cve.org/CVERecord?id=CVE-2026-111497
csiegert a day ago
gnabgib a day ago
> We will support the Deno runtime for another year with monthly releases containing bug fixes and security updates. After that year we will end our development
csiegert a day ago
gnabgib a day ago
csiegert a day ago
Amsozzer a day ago
userbinator a day ago
[1] When more than half of the "standard" https://www.rfc-editor.org/info/rfc7932/#page-44 is an opaque binary blob, they're really not encouraging independent implementations.
Edit: the votes really show what an echochamber for Big G this place has become. FUCK YOU, GOOGLE!
johncolanduoni a day ago
userbinator a day ago
Dylan16807 a day ago
chrismorgan 21 hours ago
0xbadcafebee a day ago
This is not a server-side issue (unless for some weird reason you're using Brotli decoding in your http request processing), it's client-side.
Thank you Paul for the write-up (https://opensourcemalware.com/blog/node2shell-affects-python)
cowlevel a day ago
QuadmasterXLII a day ago
TZubiri a day ago
whether a hello wolrd in fastapi is affected might also be interesting
cpburns2009 a day ago
profdevloper a day ago
DogeGode a day ago
cowlevel a day ago
https://news.ycombinator.com/item?id=50069499
Edit: why flagged
caymanjim a day ago
Rust Derangement Syndrome is at epidemic levels here.
gnabgib a day ago
OCTAGRAM a day ago
Dylan16807 a day ago
Well for one you linked a bug that didn't lead to any known vulnerabilities. (And isn't an overflow.)
bogomind a day ago
Worth checking before the panic: node vendors that decoder in deps/brotli, and its v24.x tree already carries the changed function, so 24.x is not exposing the old behaviour. What is exposed is anything still vendoring brotli from before February 2026, and "disable br" is a fine stopgap that leaves the decoder in place.
From the honeypot side, an HTTP/1.1-only decoy farm is blind to this class. Mine is: no h2 preface in 7,900 lines, so the sweepers can't tell me whether anybody is already trying it.
cowlevel a day ago