TLDR: If you depend on aeson, please bump your upper bound to <2.4.
For folks who have been confused about this, like me:
aeson 2.3.0.0 (2026-05-21) fixes HSEC-2026-0007, a remotely-triggerable memory-exhaustion DoS. It also requires text-iso8601 >= 0.2, fixing the second half of that advisory.
The packages still capped at
<2.3are collectively holding the ecosystem to versions with a published denial-of-service advisory. [for 3 months and counting.]Two things that might unstick this:
- You don’t need to wait for your dependencies. Widen your
<2.3to<2.4; any package can do it today, in any order. Some of us may have assumed we’re blocked when we aren’t.- Could the Hackage trustees bulk-revise these upper bounds? Security-motivated revisions are a thing they can do, and this would be much faster than waiting for so many maintainers to cut releases.
I didn’t realise that my packages were part of the problem. I’ve now bumped hledger, hledger-lib, hledger-ui and hledger-web to
<2.4. I’ve kept the lower bounds unchanged to avoid dependency conflicts and stay installable from current snapshots.I was thinking I should raise the aeson lower bound to
>=2.3to avoid the bug. But that would evict me from current stackage; and, bounds should express API compatibility, not security policy. Apparently the right way is to check that as a separate step with cabal-audit. Though I’m not sure if that reliably helps ordinary cabal users doing “cabal install PROGRAM”.
More info:
- https://haskell.github.io/security-advisories/advisory/HSEC-2026-0007.html
- https://github.com/commercialhaskell/stackage/issues/8016
We had an excellent security advisory but we’ve failed at executing the fix across the ecosystem.
[Update: happily, the fix has now been backported to aeson-2.2.5.1 / text-iso8601-0.1.1.2, which will also help reduce the number of people exposed to the bug.]