
Single-page tracker recording per-distribution patch status for CVE-2026-81642, the Unbound DNSSEC validator heap overflow and ReTrap complexity attacks.
Source for the CVE-2026-81642 patch-status tracker: a single-page site recording which distributions have shipped a fix for the Unbound DNSSEC validator heap overflows and the ReTrap complexity attacks disclosed alongside them.
Everything about the bugs — affected and fixed versions, the upstream advisories, discovery and disclosure credit, and current per-distribution patch status — belongs to the tracker page, not to this README:
site/content/_index.mdEdit that file; everything else in this repo is build infrastructure.
None of it is restated here on purpose. The tracker page is revised as distributions ship fixes — for the actively updated trackers, twice daily by the auto-update agent — so any copy kept in this README would silently rot. Resist re-adding a summary.
Deployment plan and current setup state live in
WEBSITE.md.
Requires Hugo extended (≥ 0.146.0) and Go (for Hugo Modules to fetch the PaperMod theme).
nix develop # dev shell: hugo, go, git, resvg, curl
cd site
hugo server # local preview at http://localhost:1313/CVE-2026-81642/
If you use direnv, direnv allow once and the
dev shell auto-activates whenever you cd into the repo.
Install Hugo extended ≥ 0.146.0 and Go ≥ 1.24 yourself, then:
cd site
hugo server # http://localhost:1313/CVE-2026-81642/
make build # local build into site/public/
make dist # build, then rsync to haig:/CVE-2026-81642/
make banner # re-rasterise the social banner SVG → PNG (needs resvg + Roboto)
make dist runs make build first. make banner is only needed after
editing site/assets/cve-2026-81642-tracker.svg; the rendered PNG is
committed.
A row's Fixed since is the date the fix actually shipped, derived from the source that shipped it — never the day it was noticed. For the NixOS and nixpkgs channels that derivation is a script:
./scripts/nixos-first-shipped nixos-unstable <nixpkgs-commit>
It lists the channel's published releases, finds the earliest one built from a revision containing the commit, and prints that release and its publication date. Debian dates come from the changelog or snapshot.debian.org, pkgsrc dates from the package Makefile's history.
The other two helpers read the current state out of the local clones:
./scripts/nixpkgs-versions
./scripts/pkgsrc-versions
Each prints one line per tracked row — the version, and whether a CVE
backport is present. pkgsrc-versions reports a quarterly branch the
clone does not have yet as absent rather than failing, so a row can
be seeded ahead of the branch.
.
├── flake.nix # Nix dev environment (hugo, go, git, resvg, curl)
├── .envrc # direnv hook → `use flake`
├── .gitignore
├── Makefile # `make build`, `make dist`, `make banner`
├── LICENSE # CC BY 4.0
├── README.md # this file
├── CLAUDE.md # project instructions for Claude Code
├── WEBSITE.md # publication plan / decisions log
├── scripts/ # auto-update driver + prompt, and the lookup helpers
├── systemd/ # user-level timer + service units
├── tests/ # tests for the (unused here) alas-cve helper
└── site/ # Hugo project
├── hugo.toml
├── content/
│ └── _index.md # the tracker (single page)
├── assets/css/extended/custom.css # PaperMod CSS overrides
├── assets/cve-2026-81642-tracker.svg # social-banner source (→ make banner)
├── static/cve-2026-81642-tracker.png # rendered OpenGraph banner (committed)
├── layouts/partials/ # PaperMod overrides (post_meta, extend_footer)
├── layouts/shortcodes/details.html # collapsible verification log
├── go.mod, go.sum # Hugo Modules — pulls PaperMod theme
└── … # standard Hugo skeleton
CC BY 4.0 — share and adapt with attribution.