[security] deps: RUSTSEC-2026-0258 (h2) — l'audit quotidien est rouge depuis le 2026-08-19 #343
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#343
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constat
audit.ymléchoue tous les jours depuis le 2026-08-19 06:00 UTC, soit 17 runs consécutifs (run_number375 → 391). Dernier vert : le 2026-08-18 (run 374). Aucun push surmaindans cette fenêtre — le code n'a pas bougé, c'est une advisory publiée entre-temps.Extrait du log du run 391 :
error: 1 vulnerability found!/warning: 22 allowed warnings found— le compte de warnings est identique à celui du 2026-08-15, une seule vulnérabilité s'est ajoutée.L'advisory est datée du 08-17 et le premier run rouge est le 08-19 : le délai correspond à la propagation dans l'advisory-db.
Au passage, ces 17 jours de rouge sont le mode d'échec que l'ADR 0018 visait à empêcher — « alarme permanente = alarme ignorée ». Le gate est bloquant par choix, et personne ne l'a vu crier.
L'advisory
RUSTSEC-2026-0258 / GHSA-q83h-524g-xf6h — catégorie déni de service, sévérité faible.
h2accepte et met en file des framesDATAvides sans aucune limite ; si les flux ne sont pas activement drainés, la mémoire croît sans borne, et la longueur peut déborder en panique. Corrigé en 0.4.16.Atteignabilité
Vérifiée par la méthode de l'ADR 0018 —
cargo tree -ipar triple livré, jamais--target all.h2est présent sur les deux cibles livrées, par deux chemins distincts :Le premier chemin est celui de la mise à jour automatique (vérification et téléchargement). Le second est le
reqwestque l'app déclare elle-même, utilisé par les commandes de licence, d'authentification, de cours et de feedback.Par la règle 1 de
.cargo/audit.toml: correctif publié + crate atteignable = advisory à corriger, jamais à supprimer. Aucune entrée n'est à ajouter au fichier des suppressions, et le garde-fou decheck-rust.ymlreste inchangé (CRATES="rsa").Correctif
cargo update -p h2→ 0.4.19 (le correctif demande ≥ 0.4.16). Un seul paquet verrouillé,Cargo.tomlintouché, 666 paquets avant et après.Point de vigilance — la dérive
windows-syscargo updatere-résout et réaiguille au passage 7 pointeurswindows-sysde0.61.2vers 0.48/0.52/0.59 —colored,dirs-sys,errno,rustix,rustls-platform-verifier,tempfile,winapi-util. C'est la même dérive qu'en #310, dans le même sens.Or c'est exactement ce que #321 a délibérément défait le 2026-08-15, après avoir vérifié crate par crate que
0.61.2est l'état du tagv0.14.0— donc la seule configurationwindows-sysqui ait réellement compilé sous Windows. Laissercargo updatela refaire régresserait cette décision en silence, trois semaines après.Le correctif ne porte donc que la strophe
h2: version + checksum, 2 lignes.cargo metadata --lockedaccepte ce fichier de verrouillage sans le réécrire, ce qui prouve sa cohérence.Vérifications
cargo metadata --locked: exit 0, lock non réécritcargo check --locked --all-targets: exit 0cargo test --locked --all-targets: 111 passed, 0 failedcargo-audit 0.22.2sur le lock corrigé : exit 0, 22 warnings autorisés, zéro vulnérabilitéerror: 1 vulnerability found!sur RUSTSEC-2026-0258 — l'outil local reproduit bien le rouge de la CI, donc le vert obtenu veut dire quelque chosersaabsent des deux cibles, canaritartrouvé