
Suivi de l'état des correctifs pour CVE-2026-42533, un dépassement de tampon sur le tas dans le moteur d'évaluation de scripts en deux passes de nginx. nginx mesure une expression de chaîne dans une passe LEN puis l'écrit dans une passe VALUE, sans sauvegarder ni restaurer l'état des captures PCRE ; l'évaluation d'une map regex écrase donc une capture référencée plus tôt dans la même expression, et les deux passes ne s'accordent pas sur la taille du tampon. Un attaquant non authentifié peut envoyer des requêtes HTTP forgées pour faire déborder le tas du worker avec des octets contrôlés par la requête ; F5 évalue l'impact comme un déni de service, et une exécution de code lorsque l'ASLR est désactivé ou peut être contourné. Corrigé en amont dans nginx 1.31.3 (mainline) et 1.30.4 (stable), publiées le 2026-07-15.
Le site généré est publié à l'adresse https://kimmo.cloud/CVE-2026-42533/.
Le plan de déploiement et l'état actuel de la configuration se trouvent dans WEBSITE.md.
Le suivi est une seule page Hugo : site/content/_index.md. Modifiez ce fichier ; tout le reste est de l'infrastructure de build.
Il comporte deux tableaux de distribution aux colonnes identiques — un par branche nginx amont, car stable et mainline ont des versions corrigées distinctes (1.30.4 et 1.31.3) et les distributions les empaquettent séparément.
Nécessite Hugo extended (≥ 0.146.0) et Go (pour que Hugo Modules récupère le thème PaperMod).
nix develop # dev shell: hugo, go, git, resvg, curl
cd site
hugo server # local preview at http://localhost:1313/CVE-2026-42533/
Si vous utilisez direnv, faites direnv allow une fois et le shell de dev s'active automatiquement dès que vous faites cd dans le dépôt.
Installez vous-même Hugo extended ≥ 0.146.0 et Go ≥ 1.24, puis :
cd site
hugo server # http://localhost:1313/CVE-2026-42533/
make build # local build into site/public/
make dist # build, then rsync to haig:/CVE-2026-42533/
make banner # re-rasterise the social banner SVG → PNG (needs resvg + Roboto)
make dist exécute d'abord make build. make banner n'est nécessaire qu'après modification de site/assets/cve-2026-42533-tracker.svg ; le PNG rendu est commité.
La valeur Fixed since d'une ligne est la date à laquelle le correctif a réellement été livré, dérivée de la source qui l'a livré — jamais le jour où il a été remarqué. Pour les canaux NixOS et nixpkgs, cette dérivation est un script :
./scripts/nixos-first-shipped nixos-unstable <nixpkgs-commit>
Il liste les versions publiées du canal, trouve la plus ancienne construite à partir d'une révision contenant le commit, et affiche cette version ainsi que sa date de publication. Les dates Debian proviennent du changelog ou de snapshot.debian.org, les dates pkgsrc de l'historique du Makefile du paquet.
Les deux autres utilitaires lisent l'état actuel depuis les clones locaux :
./scripts/nixpkgs-versions
./scripts/pkgsrc-versions
Chacun affiche une ligne par entrée — les versions, et si un backport CVE est présent. pkgsrc-versions respecte PKGNAME, il rapporte donc l'identifiant qu'un hôte affiche (nginx-devel-1.29.6nb1), et non le nom du distfile.
.
├── 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 three lookup helpers
├── systemd/ # user-level timer + service units
└── site/ # Hugo project
├── hugo.toml
├── content/
│ └── _index.md # the tracker (single page)
├── assets/css/extended/custom.css # PaperMod CSS overrides
├── assets/cve-2026-42533-tracker.svg # social-banner source (→ make banner)
├── static/cve-2026-42533-tracker.png # rendered OpenGraph banner (committed)
├── layouts/partials/ # PaperMod overrides (post_meta, extend_footer)
├── go.mod, go.sum # Hugo Modules — pulls PaperMod theme
└── … # standard Hugo skeleton
CC BY 4.0 — partagez et adaptez avec attribution.