News for hackers. Stuff that matters.

gsnedders

Header parsing, sure. But message framing bugs are much more likely with HTTP/1.1.
There’s both request compression (no negotiation) and response compression (negotiated).
I’ll point out that Servo was always a research project — any thought of it replacing Gecko was an incredibly long-term stretch goal. It was _a lot_ more interested in “can we write a high-performance browser engine in Rust” (there’s a reason why it significantly predates Rust 1.0 — they were very much developed together!) and “can we implement parallelism in places where browsers historically have not” (because you have more guarantees of safety).

Chromium _has_ been replacing certain components with ones in safe languages, and it seems like that will continue slowly (with integrating them into the existing codebase, with web compatibility risk of any changes in behaviour, with the risk of performance and power regressions).

A cooldown is a coarse way to deal with “supply chain security” — and that’s mostly a question of how much you trust your dependencies.

You may well (and probably should) trust the maintainers and release process of Brotli, Node.js, PHP, etc. security releases more than you trust some-random-JS package deep in your front end dependency graph.

You want to reduce the risk of introducing a compromised dependency into your product, and that’s largely a question of how much you trust upstream.

From a browser point-of-view, the real questions are about data size (if you can get the wireless interface back to a low power state, you’re winning on power benchmarks), about decompression cost (again, power benchmarks), and decompression time (for performance benchmarks and user-perceived performance).

Storage and compression compute costs aren’t really relevant — only insofar as if there’s very little adoption, the security risk of exposing the code is there but isn’t providing user benefit.

Things like Rust in Chromium weren’t even being talked about back when Brotli was introduced to Chromium.

I think Chromium as a project would be happier if they had less unsafe code in general, and holding new dependencies (especially those like media formats, which have a long history of security issues) to that standard doesn’t seem particularly surprising.

There’s always going to be trade-offs: how much benefit does this provide (users, developers) compared with how much risk does it incur (safe/unsafe code, quantity of code you’re now on the line for the security of).

(And that’s taking that reason to not support JPEG XL at face value, ignoring any debate about it.)

Re:Big Fish: Exploiting a 37-Year-Old Kernel Bug in OpenBSD on Saturday October 17, 2026 @04:25AM (#50129065)
It’s clear from anyone trying to adopt MTE on ARM that there are just _a lot_ of memory-related bugs all over the place.
There’s plenty of things you can very deterministically verify — if the LLM writes a test case which causes an ASan violation, you probably have a bug; if the LLM writes a test case which run the various corruption checking tools and they find corruption then you either have corruption or you have a bug in the corruption checking tool; etc.

There’s plenty of ways in which you can guide LLMs, and sandbox them, to get a much higher hit rate.

And that’s before the increase of validity of bugs compared with a year ago — we’re past the peak of slopageddon, and maybe even at a point where a higher percentage of security bugs reported are valid than was the case pre-LLMs.

Re:11 year old unsoundness bugs found in Rust borrow checker on Tuesday October 13, 2026 @03:15PM (#50077068)
> The unfortunate fact is that a fully sound Python type system would be a pain to use.

Even beyond Python, most gradual type systems are unsound by design.

Re:Strands Decider 2B: a small, open-source, decision model on Wednesday October 07, 2026 @11:45AM (#49994462)
What I don’t get from this article is why strands-decider-2b v10 and strands-decider-2b v11 are shown as “other systems”, and with v11 notably outperforming v19 — why are these other systems, and why is v11 not the path taken?
Re:Cloudflare Ohttp Gateway on Saturday October 03, 2026 @08:50PM (#49949431)
OHTTP is designed for a relatively narrow use case: stateless requests where you don't want the gateway to be able to correlate multiple requests from the same client (i.e., it's not just about hiding the IP address).

A clear example of when this might be a good idea is DNS-over-HTTPS — you don't want the resolver being able to correlate multiple requests from the same client.

You _can_ try and do this with SOCKS5, however you need to be very careful to avoid sharing any state:

* You must use a new TCP connection for each request, with a new TLS and HTTP connection atop.

* You must ensure you do not use TLS Session Resumption or 0-RTT data.

* You must, to the maximum extent possible, be very conservative with what you send in the TLS ClientHello to avoid exposing fingerprinting data.

SOCKS5 is also unencrypted, and the request contains the destination: the hostname if the proxy resolves it, or the IP if the client resolved it itself (and ECH doesn't help here, since it only protects the SNI inside the TLS handshake that follows). With OHTTP, that's all inside the TLS connection to the relay.

OHTTP doesn't have the client sending up-front metadata about all the different encryption methods it supports to the gateway (it relies on the gateway to tell it what it supports, and the client just picks one); the gateway doesn't get to see any of the TLS fingerprinting surface (because that is only visible to the relay).

OHTTP also doesn't require there to be multiple new TCP connections made for every request (whereas with SOCKS5 you're looking at a new TCP connection from the client to the proxy, and from the proxy to the server, per request) — you can have a long-lived connection to the relay, and the relay can have a long-lived connection to the gateway (shared by many clients). That's a big latency win for applications like DNS-over-HTTPS.

The risks of key disclosure also differ between the two — with OHTTP, disclosure of the gateway key essentially means the relay can decrypt recorded traffic that used that key (as there is no forward secrecy), whereas disclosure of the client <-> relay and relay <-> gateway keys matters a lot less (because there is forward secrecy); with SOCKS5, you have forward secrecy via the end-to-end TLS connection.

For the use-case of a general-use proxy, work such as MASQUE provides a multi-hop approach to limit exposure to any single party, and that does provide an end-to-end TLS connection — but you with that you're back to exposing all the fingerprinting associated with it, though for a general use proxy you may also be sending session-specific data (like auth tokens) that clearly tie requests together anyway.

Re:ADHD, autism or complex trauma? [pdf] on Saturday October 03, 2026 @03:41PM (#49947114)
https://pmc.ncbi.nlm.nih.gov/articles/PMC8328933/#S20 might be a good starting point here?
Re:ADHD, autism or complex trauma? [pdf] on Saturday October 03, 2026 @03:38PM (#49947102)
From that meta article:

> For most people with ADHD, many genetic and environmental risk factors accumulate to cause the disorder.

i.e., for most people, there is no singular cause.

My reading of the docs is that when fetching/pushing from a SHA-256 repo, all objects are referred to (in the packfile fetched) by their SHA-256 names — then, when fetching, you locally compute the SHA-1 of each object for the translation table.

Presuming there’s some validation that SHA-1 names are unique, then that should be safe — the only way I can see one could do a pre-image attack is either fetching from a SHA-1 server (because then you don’t get the SHA-256 object name), which requires a second pre-image attack on SHA-1 (known to be feasible); or by having a second pre-image attack against both SHA-1 and SHA-256 simultaneously (and SHA-256 is still believed to be secure).

Re:The case against JPEG XL on Monday September 14, 2026 @03:44AM (#49693301)
AVIF _is_ AV1 in the HEIF container.

(.heif is sometimes used as a file extension generically, but HEIF is itself a container that can support various payloads.)

Re:Actively exploited sandbox RCE in all Chromium versions on Saturday September 05, 2026 @09:19PM (#49582436)
This hasn’t been true in over a decade.
It's also, inevitably, the newest people who are often the best at fixing basic documentation — because they're the ones who don't already know it.
Re:A Spectre Is Haunting Unicode on Saturday August 15, 2026 @03:35PM (#49313560)
> The peculiar properties of CJK characters and the philosophy (apparently the Japanese did not like Unicode's tendencies towards Aristotelian essentialism) under which they were implemented in Unicode probably singlehandedly forced unicode to expand beyond the BMP....

Note that Han Unification has a history predating Unicode, and the Unicode work very much followed on from that.

The most notable is CCCII, developed in Taiwan in the early 80s, and then standardised in various places.

That's not to say that it hasn't been controversial (it has!), nor to say that it hasn't caused problems (it has!), but it's also unfair to say that it's just Unicode doing its own special thing.

There’s a decent amount of public health research that suggests that annual physical exams don’t actually have a large impact on health.

In the US case specifically, I always wonder how much of the benefit is just “here’s a free appointment with a doctor once a year”.

Re:The AI Billboards Are Killing SF on Sunday August 09, 2026 @03:21PM (#49234733)
And I get it — when the name of FooBar Inc is on the billboard. When there’s neither a product name nor a company name, which seems to be happening more and more often, I just don’t get it!
Re:The AI Billboards Are Killing SF on Friday August 07, 2026 @12:48PM (#49213149)
I feel like SF has been full of frequently inscrutable billboards as long as I’ve been coming here — at least a decade.

It’s maybe got slightly more extreme recently, with an even larger percentage of them being inscrutable to me as someone who both works in tech and has a decent grasp of current industry trends.

I’ve never really got it — if even I don’t know what you’re advertising (or often, who is advertising!), how does this help your sales?

https://github.com/web-platform-tests/wpt/commits/master/aci... shows the history of the web-platform-tests copy of WPT, which has mostly followed Hixie’s earlier updates to Acid3 by simply commenting out assertions that no longer match what specs say.
Re:Stacked PRs are now live on GitHub on Friday July 31, 2026 @01:20AM (#49119287)
I’d still love a way to be able to rewrite commits at merge time, via Actions or otherwise.

The most obvious case is something like adding a Reviewed-By/Signed-off-by trailer based on reviewers, but there’s also a decent number of big projects that want more semantically meaningful commit identifiers (think more revision, in a numeric sense).

It seems like making merges async should make it a lot more possible to implement that!

Re:Stacked PRs are now live on GitHub on Friday July 31, 2026 @01:01AM (#49119191)
And enough of the time you can just match based on subject line, similar to how fixup/squash commits work with autosquash.

There’s enough ways you can match up commits, with plenty of prior art in this space.

Re:Open Book Touch: open-source e-reader on Sunday July 19, 2026 @01:08AM (#48965169)
Being based on a microcontroller and having limited RAM, I do wonder how good its ePub implementation is, especially in terms of CSS, but also in terms of dealing with larger (XHTML) documents.
This is why a distinction is often drawn between vulnerabilities and exploits — many more things can be weaknesses in a system that can only be exploited in combination with other vulnerabilities.

An obvious example is web browsers, where a vulnerability can easily be uninteresting because it lives in a sandboxed process… until you find a sandbox escape, then it is critical.

As long as you suspect there may be other vulnerabilities in the other layers, it is worthwhile investigating and fixing them, because defence in depth only works until someone manages to put together a full chain.

Re:Apple's weird anti-nausea dots cured my car sickness on Wednesday June 17, 2026 @11:34AM (#48571918)
It came in macOS Tahoe 26 — a year later than on iOS and iPadOS.

Personally, I find it somewhat less effective on larger screens, simply because my eyes are more likely to be further from the dots.

Re:Your ePub Is Fine. Kobo Disagrees. Blame Adobe on Monday June 15, 2026 @01:29PM (#48544448)
Yes, every single CSS standard ever has required that.
Re:Your ePub Is Fine. Kobo Disagrees. Blame Adobe on Sunday June 14, 2026 @10:54PM (#48536038)
While plausible, I would suspect it’s more likely you’ve just run into bugs than forwards-compatible error behaviour — most ePubs don’t get anywhere near actually interesting CSS!
Re:Your ePub Is Fine. Kobo Disagrees. Blame Adobe on Sunday June 14, 2026 @08:49PM (#48535077)
epubcheck is meant to ensure conformance with the standards, not the interoperably implemented subset of the standards. (Which has lots of awkward questions: which implementations of the standards, which versions of those implementations, etc.)

Older »