fix(deps): rustls-webpki 0.103.16, webpki-root-certs 1.0.10 and vite 6.4.4 (RUSTSEC-2026-0382/0383, launch-editor) #485
No reviewers
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#485
Loading…
Reference in a new issue
No description provided.
Delete branch "issue-484-security-bumps"
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?
Refs #484
Resolves #483
Ce que change cette PR
Deux montées de version dans les locks, et aucune ligne de code de l'application. Décision de Max (2026-10-20) : une seule PR pour #484 et #483, un commit par issue.
src-tauri/Cargo.lock:rustls-webpki0.103.15 → 0.103.16 etwebpki-root-certs1.0.6 → 1.0.10 (RUSTSEC-2026-0382 et RUSTSEC-2026-0383), commit4a04716.package-lock.json:vite6.4.3 → 6.4.4 (GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw, danslaunch-editor), commite66ae08.package.jsonreste à^6.4.3(décision de Max : lock seulement).CLAUDE.mdetdocs/architecture.md: la lecture datée «npm audità 0 » passe au 2026-10-20 (#483). Seuls la date et le lien changent, « (#358 en vient) » est gardé.Ce que changent les nouvelles versions (lu, zone Dépendances de
REVIEW.md)rustls-webpki0.103.16src/data/distrusted), une erreurCertDistrusted, et le refus d'une chaîne qui les contient. Dépendances inchangées.rustls-platform-verifier0.6.2 valide la chaîne de l'updater parwebpki(others.rs, racines du système). Sous Windows,windows.rsne l'utilise pas : c'est l'API du système qui valide.reqwest0.12 avec la TLS du système, non concernés.webpki-root-certs1.0.10rust-versionde 1.64 à 1.71.rustls-platform-verifierpourwasm32seulement (et de développement).cargo tree --locked -i webpki-root-certsest vide pourx86_64-unknown-linux-gnucomme pourx86_64-pc-windows-msvc.vite6.4.4dist/nodechange.launch-editorembarqué (escapeCmdArgs,existsSync, commande de lancement) ;checkServingAccessetdeniedServingAccessForTransformsont retirés au profit du contrôle au chargement, déjà présent ;safeModulePathsaveccleanUrl.launch-editor-middlewarechange (^2.14.1 → ^2.14.2).process.env,child_processni le réseau. Tout ce code sert au serveur de développement (vite dev,tauri dev).Preuves
main(45d8493)rustls-webpkiremis en 0.103.15 (copie du lock)webpki-root-certsremis en 1.0.6 (copie du lock)Cargo.lockgit diff --numstat:4 4; deux blocs changent de version, aucun ajouté ni retiré, même source crates.io ;cargo metadata --lockedpassecheck-rust(texte exact de l'étape,bash -e -o pipefail)cargo check --locked/cargo test --lockedcargo xwin check --locked(Windows)rustls-webpki0.103.16 vérifié)npm auditlaunch-editor, 1 hautevite6.4.3npm auditcode 1, les 3 avispackage-lock.jsongit diff --numstat:3 3(version,resolvedsur registry.npmjs.org,integrityégale ànpm view) ;package.jsoninchangé ; clés de.packagesidentiquesnpm civite6.4.4 installé ;npm@11.21.0 install --package-lock-onlylaisse le lock identique à l'octet (même témoin sur la base)dist/de référenceMéthode du lock npm.
npm update vitegardait la 6.4.3 (« up to date »).npm install vite@^6.4.3prenait bien la 6.4.4, mais réécrivait la borne en^6.4.4danspackage.jsonet à la racine du lock. Seul son blocnode_modules/vitea donc été gardé : 3 lignes.Niveau
Normal selon
REVIEW.md:package.jsonetCargo.tomlinchangés) ;CLAUDE.mdetdocs/architecture.md, au moins normaux ;Post-merge checklist (hence
Refs, not a closing keyword)audit.ymlparworkflow_dispatchsurmain: run vert (aucune vulnérabilité, 18 avertissements autorisés), numéro du run cité sur #484.STATE.md(« Vérifications dues à la release suivante ») :rustls-webpki;check()final de la nouvelle version passe par la 0.103.16, et seul Linux valide la chaîne avec lui ;#483 se ferme au merge.
🤖 Generated with Claude Code
CI lue sur la tête
e66ae08, les deux contrôles sont verts (journaux lus, codes ANSI retirés).check-frontend(run 604) :npm ciaffichefound 0 vulnerabilities, et vitest donne 156 fichiers et 2560 tests verts.check-rust(run 605) :cargo test: 269 réussis, 1 ignoré ;cargo auditinformative porte sur 663 crates et rend18 allowed warnings found, sans aucune lignevulnerabilit(y|ies) foundet sans RUSTSEC-2026-0382 ni -0383.#484 et #483 passent en
status:review. Une revue indépendante (/pr-review 485) reste à faire.Niveau : normal
Verdict : APPROVE
Résumé. Les deux montées de version Rust et celle de
vitesont exactement ce que la PR annonce : quatre lignes deCargo.lock, trois depackage-lock.json, mêmes origines de registre, aucun paquet ajouté ni retiré. Rejouées hors dépôt, les preuves tiennent : audit rouge surmainet vert sur la tête, chaque avis revient avec sa version d'origine, les phrases d'exposition du CHANGELOG sont confirmées parcargo treeet par le source, et le build est identique à celui demainhors des deux CHANGELOG. Quatre constats non bloquants : trois viennent de publications postérieures à l'ouverture de la PR (avis npm etvite6.4.5 du 2026-10-21), le quatrième d'un ADR antérieur.Calcul du niveau :
package-lock.jsonetsrc-tauri/Cargo.lockne remplissent pas leur ligne du tableau Haut (aucune clénode_modules/<nom>ni bloc[[package]]ajouté ou retiré,resolvedetsourceinchangés en hôte et en schéma,integrityetchecksumchangés avec une nouvelle version) ;CLAUDE.mdetdocs/architecture.mdrestent au moins normaux ; les CHANGELOG sont bas.Rejoué par la revue
Copies
git archivede45d8493et dee66ae08dans/tmp/pr485-review, hors dépôt, supprimées en fin de revue.mainà l'octet : le diff se limite aux deux paires version et checksum. Checksums de 0.103.16 et 1.0.10 égaux à l'index crates.io et au sha256 des.crate.build = falsepour les deux crates.cargo metadata --lockedpasse.rustls-webpki0.103.15 → 0.103.16Cargo.tomldu crate modifié par sa seule version (dépendances, features et MSRV identiques). Trois fichiers desrc/modifiés et huit.derajoutés : varianteCertDistrusted(enum#[non_exhaustive]), huit SPKI emSign eninclude_bytes!, refus d'un chemin qui en contient un, maillon ou ancre, plus un test. Rien d'autre.webpki-root-certs1.0.6 → 1.0.10emSign ECC Root CA - G3retirée ; dépendances identiques, MSRV 1.64 → 1.71.main: code 1, RUSTSEC-2026-0382 et RUSTSEC-2026-0383. Tête : code 0, 663 crates, 18 avertissements autorisés.rustls-webpkiremis en 0.103.15 (copie du lock)webpki-root-certsremis en 1.0.6 (copie du lock).cargo/audit.tomlrsa) seule : le vert de la tête ne doit rien à une suppression, la liste n'admet quersa(règle 1 de l'ADR 0018 respectée)cargo tree --locked -i <crate> --target <triple> -e normalrustls-webpkiparrustls(←hyper-rustlsettokio-rustls←reqwest0.13.2 ←tauri-plugin-updater) et parrustls-platform-verifier. Windows : parrustlsseulement.webpki-root-certs: rien pour les deux cibles.rustls-platform-verifier0.6.2 :others.rs(Linux) bâtit unWebPkiServerVerifiersur les racines du système,webpki-root-certsn'y sert que souscfg(target_arch = "wasm32");windows.rspasse parCertGetCertificateChainetCertVerifyCertificateChainPolicy.reqwest0.13.2 prendVerifier::newfaute de racine ajoutée,tauri-plugin-updater2.10.0 n'en ajoute pas, ettauri.conf.jsonn'a aucune optiondangerous*. Lereqwest0.12 de l'app est déclaréfeatures = ["json"], donc TLS du système. Les phrases d'exposition des deux CHANGELOG tiennent.git.lacompagniemaximus.com(Let's Encrypt YR2 → ISRG Root YR → ISRG Root X1) ne passe par aucun intermédiaire emSign : la défiance ajoutée par la 0.103.16 ne touche pas l'endpoint delatest.json.vite6.4.4integritydu lock égale au registre et au sha512 du tarball téléchargé. Provenance SLSA :vitejs/vite, tagv6.4.4(commit5f0d9a4),.github/workflows/publish.yml, trusted publishing comme la 6.4.3.dependencies,optionalDependencies,peerDependencies,enginesetbinidentiques à la 6.4.3.npm audit signaturessur la tête : 176 signatures de registre et 72 attestations vérifiées.vite6.4.3 → 6.4.4, renommages du bundler neutraliséscli.jsetindex.jsne diffèrent que par les noms des morceaux. Contenu :launch-editor2.14.2 etshell-quoteembarqués,checkServingAccessetdeniedServingAccessForTransformretirés au profit du contrôle au chargement,getHtmlFilenameetdevHtmlHook,safeModulePathssur l'id résolu dansvite:import-analysis. Tout relève du serveur de développement, conformément aux quatre entrées du CHANGELOG amont de la 6.4.4.npm ci(npm 10.9.4) puisnpm run buildsurmain(vite 6.4.3) et sur la tête (vite 6.4.4) :dist/identique fichier par fichier, saufCHANGELOG.mdetCHANGELOG.fr.md.npx npm@11.21.0 install --package-lock-onlysur la têteviteremis en 6.4.3 (copie du lock)mainà l'octet ;npm auditcode 1,viteen haute avec cinq avis (constat 2)cargo xwin check --manifest-path src-tauri/Cargo.toml --locked --target x86_64-pc-windows-msvc(cargo-xwin déjà installé), témoinmainpuis tête : code 0 et code 0. Sur la tête,rustls-webpki v0.103.16,rustls,tokio-rustls,rustls-platform-verifier,hyper-rustls,reqwest0.13.2 ettauri-plugin-updaterrevérifiés.check-rust,e66ae08) :Checking rustls-webpki v0.103.16, « Suppression guard: 2 checks, exit 0 », « windows-sys pinning: 9 checks, exit 0 », 269 réussis et 1 ignoré, audit sur 663 crates avec18 allowed warnings foundet aucune ligne `vulnerabilit(yLa suite vitest n'a pas été rejouée : le run 604 en fait foi, et la PR ne touche aucun code.
Constats non bloquants
npm auditn'est plus à 0, sur la tête comme surmain. Deux avis modérés publiés le 2026-10-21 entre 19:48 et 19:54 UTC, après le run 604, visent@vitest/mocker4.1.11, etvitest4.1.11 par lui : GHSA-qxg6-89mg-rqv8 (« Code injection via unauthenticated manual mock registration ») et GHSA-xp26-3454-mjgp (« Windows backslash traversal bypasses the @vitest/mocker redirect allowlist fix »). Correctif en 4.1.12 (publiée le 2026-10-15), dans la plage^4.1.9depackage.json. Hors du périmètre de la PR. La phrase «npm audità 0 au 2026-10-20 » deCLAUDE.mdet dedocs/architecture.mdreste exacte comme constat daté, mais sera dépassée au merge, et lenpm cidu prochaincheck-frontendimprimera deux vulnérabilités. Suite : une issue pourvitest4.1.12 (lock à générer parnpx npm@11, npm 10 plantant sur les montées de vitest), ou le prochain scan du Défenseur.vite, pas trois. GHSA-rq7h-c2jc-7f22 (modéré, « Files outsideserver.fs.allowcould be served when project paths match system paths on non-Windows machine ») et GHSA-9jrq-w75r-8gcw (faible, « Cross origin script execution through Vite custom middleware »), publiés le 2026-10-21 vers 16:48 UTC, visent<= 6.4.3avec la 6.4.4 pour correctif ; R4 les fait reparaître. Tous deux concernent aussi le serveur de développement. Les pucesvitedes deux CHANGELOG peuvent les nommer, en parlant du serveur de développement plutôt que de la seule fonction « ouvrir dans l'éditeur ».vite6.4.5 est publiée (2026-10-21, 05:35 UTC, après l'ouverture de la PR), avec une seule entrée : « checkserver.fsafter stripping query as well ». Aucun avis publié ne vise la 6.4.4 à l'heure de cette revue. Au choix de Max : garder la 6.4.4, un avis pouvant suivre, ou passer à la 6.4.5 par la même méthode (trois lignes du lock).reqwestcomme « l'un des deux chemins qui rendentrustls-webpkiatteignable ». C'est faux : lereqwest0.12 de l'app passe par la TLS du système, et c'était déjà le cas le 2026-07-27 (lock de81804bb). La puce de cette PR dit juste ; l'ADR est à corriger dans une PR de documentation.Fermeture des issues (timeline)
pull_refde #485 encloses, etResolves #483dans le message dee66ae08: elle se ferme au merge, par l'API comme en avance rapide locale.pull_refenref_action: none,Refs #484dans4a04716, aucun mot-clé de fermeture dans le corps ni dans les commentaires : elle reste ouverte, conformément à la checklist post-merge.Commits au format conventionnel, un par issue, comme décidé.
Actions faites
status:review→status:approved./tmp/pr485-review).Suites de la revue (commentaire 26321), 2026-10-21 :
e82422f, de la documentation seulement.vitedes deux CHANGELOG nomment maintenant les cinq avis que la 6.4.4 corrige : les trois delaunch-editor, plus GHSA-rq7h-c2jc-7f22 et GHSA-9jrq-w75r-8gcw, parus après l'ouverture de la PR.rustls-webpki.vite6.4.4. La 6.4.5 ne corrige que le contrôle d'accès du serveur de développement, et aucun avis ne vise la 6.4.4.vitest/@vitest/mocker(GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp) sont suivis par #486, hors de cette PR.npm audità 0 au 2026-10-20 » reste exacte pour sa date ; #486 la mettra à jour.#483 et #484 repassent en
status:review: la revue couvrait la tête précédente (e66ae08).View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.