fix(deps): update rustls to 0.23.46 to clear RUSTSEC-2026-0346 to -0349 #448

Merged
maximus merged 1 commit from issue-447-rustls-0.23.46 into main 2026-10-16 23:14:51 +00:00
Owner

Corrige les quatre vulnérabilités qui rougissent audit.yml depuis le run 553 (2026-10-15 06:00 UTC ; dernier vert le run 552). src-tauri/Cargo.lock n'avait pas bougé depuis la v0.17.1 : les advisories, publiées le 2026-10-14, ont suffi.

Refs #447

Le diff

2 lignes dans src-tauri/Cargo.lock, une strophe. Cargo.toml intouché, 666 paquets avant et après.

crate avant après
rustls 0.23.45 0.23.46

Checksum 48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf, identique à l'index crates.io et au sha256 du .crate téléchargé. Aucun bump compagnon, contrairement à #348 : la 0.23.46 déclare les mêmes dépendances et la même MSRV (1.71). Aucune arête windows-sys déplacée : diff vide sur ces lignes, garde de l'ADR 0023 verte.

Plus une puce de CHANGELOG (EN et FR) sous ### Security / ### Sécurité de [Unreleased] / [Non publié].

Atteignabilité

Analyse complète dans #447. rustls n'est atteint que par tauri-plugin-updater → reqwest 0.13, sur les deux cibles livrées ; le reqwest 0.12 de l'application passe par native-tls. Aucun des quatre avis ne s'applique à cet usage :

Avis Condition Chez nous
RUSTSEC-2026-0346 ClientSessionStore maison aucun dans la chaîne
RUSTSEC-2026-0347 EchMode::Enable ECH jamais activé
RUSTSEC-2026-0348 feature brotli de rustls non compilée
RUSTSEC-2026-0349 groupe post-quantique proposé fournisseur ring : X25519, P-256 et P-384 seulement

Règle 1 de .cargo/audit.toml : crate présent dans le graphe et correctif publié, donc on corrige, on ne supprime pas. Le fichier de suppressions et les gardes de check-rust.yml sont inchangés.

Le CHANGELOG ne dit pas « aucun changement de comportement »

Comme 9abf474 pour le bump précédent, la phrase est restreinte au code de l'application. Outre les quatre correctifs, la 0.23.46 apporte une dizaine d'autres corrections de la couche TLS (notes amont v/0.23.46 : refus des enregistrements change_cipher_spec protégés, mises à jour de clés TLS 1.3 au moment voulu, limites de confidentialité en TLS 1.2, erreurs d'entrées-sorties, capacité du cache de sessions, etc.) ; 21 fichiers de src/ diffèrent entre les deux versions.

Vérifications locales

Sur la branche, depuis la racine du dépôt :

Contrôle Résultat
cargo-audit 0.22.2 (binaire de la CI, sha256 vérifié) avant le bump exit 1, les quatre IDs présents, 666 crates, 12 warnings autorisés
cargo-audit 0.22.2 après le bump exit 0, aucune ligne error:, 666 crates, 12 warnings autorisés aux IDs identiques
cargo metadata --locked exit 0, lock non réécrit
cargo check --locked --all-targets exit 0
Garde des suppressions, extraite de check-rust.yml Suppression guard: 2 checks, exit 0
Garde windows-sys, extraite de check-rust.yml windows-sys pinning: 9 checks, exit 0
cargo test --locked --all-targets 267 passed, 0 failed, 1 ignored

Suite frontend non lancée : aucun fichier frontend modifié, check-frontend exclut src-tauri/** et les *.md de la racine, et aucun test ne lit les CHANGELOG réels. Seul check-rust doit tourner sur cette PR.

Prochaine release

Ce bump touche une dépendance de tauri-plugin-updater : la prochaine release doit dérouler le cycle réel de mise à jour de docs/qa-update-cycle.md (étape 10 de /release), déjà dû pour release.yml (#376). Pas de release corrective, sur décision de Max dans #447.

Post-merge checklist (hence Refs, not a closing keyword)

  • Hors de la fenêtre de 06:00 UTC, puisque le run planifié partage le groupe de concurrence (cancel-in-progress) : POST /api/v1/repos/maximus/simpl-resultat/actions/workflows/audit.yml/dispatches avec {"ref":"main"}, réponse 204 attendue.
  • Retrouver ce run workflow_dispatch sur le commit de merge, ou sur un commit ultérieur de main qui en descend si src-tauri/Cargo.lock et .cargo/audit.toml y sont identiques à ceux mergés. Statut success exigé, puis lecture du log, codes ANSI retirés : version de cargo-audit installée, (666 crate dependencies), 12 allowed warnings found, aucune ligne error: N vulnerabilit…. Si la version de cargo-audit a changé, comparer les IDs des warnings plutôt que leur nombre.
  • Si ce run est rouge sur une advisory parue après le merge et visant un autre crate : #447 reste ouverte, ou n'est fermée qu'avec l'accord de Max sur la preuve qu'aucun de RUSTSEC-2026-0346 à -0349 n'apparaît ; nouvelle issue pour le nouvel ID.
  • #447 est fermée à la main une fois ce run vert, avec en commentaire le numéro du run, les comptes et la condition de réouverture (un des quatre IDs qui réapparaît dans audit.yml).
  • Puis synchronisation de STATE.md.

🤖 Generated with Claude Code

Corrige les quatre vulnérabilités qui rougissent `audit.yml` depuis le run 553 (2026-10-15 06:00 UTC ; dernier vert le run 552). `src-tauri/Cargo.lock` n'avait pas bougé depuis la v0.17.1 : les advisories, publiées le 2026-10-14, ont suffi. Refs #447 ## Le diff 2 lignes dans `src-tauri/Cargo.lock`, une strophe. `Cargo.toml` intouché, 666 paquets avant et après. | crate | avant | après | |---|---|---| | `rustls` | 0.23.45 | **0.23.46** | Checksum `48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf`, identique à l'index crates.io et au sha256 du `.crate` téléchargé. **Aucun bump compagnon**, contrairement à #348 : la 0.23.46 déclare les mêmes dépendances et la même MSRV (1.71). **Aucune arête `windows-sys` déplacée** : diff vide sur ces lignes, garde de l'ADR 0023 verte. Plus une puce de CHANGELOG (EN et FR) sous `### Security` / `### Sécurité` de `[Unreleased]` / `[Non publié]`. ## Atteignabilité Analyse complète dans #447. `rustls` n'est atteint que par `tauri-plugin-updater` → `reqwest` 0.13, sur les deux cibles livrées ; le `reqwest` 0.12 de l'application passe par `native-tls`. Aucun des quatre avis ne s'applique à cet usage : | Avis | Condition | Chez nous | |---|---|---| | RUSTSEC-2026-0346 | `ClientSessionStore` maison | aucun dans la chaîne | | RUSTSEC-2026-0347 | `EchMode::Enable` | ECH jamais activé | | RUSTSEC-2026-0348 | feature `brotli` de `rustls` | non compilée | | RUSTSEC-2026-0349 | groupe post-quantique proposé | fournisseur `ring` : X25519, P-256 et P-384 seulement | Règle 1 de `.cargo/audit.toml` : crate présent dans le graphe et correctif publié, donc on corrige, on ne supprime pas. Le fichier de suppressions et les gardes de `check-rust.yml` sont inchangés. ## Le CHANGELOG ne dit pas « aucun changement de comportement » Comme `9abf474` pour le bump précédent, la phrase est restreinte au code de l'application. Outre les quatre correctifs, la 0.23.46 apporte une dizaine d'autres corrections de la couche TLS (notes amont `v/0.23.46` : refus des enregistrements `change_cipher_spec` protégés, mises à jour de clés TLS 1.3 au moment voulu, limites de confidentialité en TLS 1.2, erreurs d'entrées-sorties, capacité du cache de sessions, etc.) ; 21 fichiers de `src/` diffèrent entre les deux versions. ## Vérifications locales Sur la branche, depuis la racine du dépôt : | Contrôle | Résultat | |---|---| | `cargo-audit 0.22.2` (binaire de la CI, sha256 vérifié) avant le bump | exit 1, les quatre IDs présents, 666 crates, 12 warnings autorisés | | `cargo-audit 0.22.2` après le bump | exit 0, aucune ligne `error:`, 666 crates, 12 warnings autorisés aux IDs identiques | | `cargo metadata --locked` | exit 0, lock non réécrit | | `cargo check --locked --all-targets` | exit 0 | | Garde des suppressions, extraite de `check-rust.yml` | `Suppression guard: 2 checks, exit 0` | | Garde `windows-sys`, extraite de `check-rust.yml` | `windows-sys pinning: 9 checks, exit 0` | | `cargo test --locked --all-targets` | 267 passed, 0 failed, 1 ignored | Suite frontend non lancée : aucun fichier frontend modifié, `check-frontend` exclut `src-tauri/**` et les `*.md` de la racine, et aucun test ne lit les CHANGELOG réels. Seul `check-rust` doit tourner sur cette PR. ## Prochaine release Ce bump touche une dépendance de `tauri-plugin-updater` : la prochaine release doit dérouler le cycle réel de mise à jour de `docs/qa-update-cycle.md` (étape 10 de `/release`), déjà dû pour `release.yml` (#376). Pas de release corrective, sur décision de Max dans #447. ## Post-merge checklist (hence `Refs`, not a closing keyword) - [ ] Hors de la fenêtre de 06:00 UTC, puisque le run planifié partage le groupe de concurrence (`cancel-in-progress`) : `POST /api/v1/repos/maximus/simpl-resultat/actions/workflows/audit.yml/dispatches` avec `{"ref":"main"}`, réponse 204 attendue. - [ ] Retrouver ce run `workflow_dispatch` sur le commit de merge, ou sur un commit ultérieur de `main` qui en descend si `src-tauri/Cargo.lock` et `.cargo/audit.toml` y sont identiques à ceux mergés. Statut `success` exigé, puis lecture du log, codes ANSI retirés : version de cargo-audit installée, `(666 crate dependencies)`, `12 allowed warnings found`, aucune ligne `error: N vulnerabilit…`. Si la version de cargo-audit a changé, comparer les IDs des warnings plutôt que leur nombre. - [ ] Si ce run est rouge sur une advisory parue après le merge et visant un autre crate : #447 reste ouverte, ou n'est fermée qu'avec l'accord de Max sur la preuve qu'aucun de RUSTSEC-2026-0346 à -0349 n'apparaît ; nouvelle issue pour le nouvel ID. - [ ] #447 est fermée à la main une fois ce run vert, avec en commentaire le numéro du run, les comptes et la condition de réouverture (un des quatre IDs qui réapparaît dans `audit.yml`). - [ ] Puis synchronisation de `STATE.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
maximus added 1 commit 2026-10-16 02:01:02 +00:00
fix(deps): update rustls to 0.23.46
All checks were successful
PR Check — Rust / rust (pull_request) Successful in 9m33s
1763a9fdd3
Clears RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 and
RUSTSEC-2026-0349, published on 2026-10-14 against rustls 0.23.45. The
daily audit.yml has been red since run 553 (2026-10-15 06:00 UTC) with
the lockfile untouched since v0.17.1: the advisories alone turned it red.

rustls is reached only through tauri-plugin-updater (reqwest 0.13) on
both shipped targets, and none of the four applies to that use: no
custom ClientSessionStore (0346), ECH never enabled (0347), no `brotli`
feature (0348), and the ring provider offers no post-quantum group to
downgrade (0349). Rule 1 of .cargo/audit.toml still asks for a fix
rather than a suppression: the crate is in the graph and a fix exists.

`cargo update -p rustls --precise 0.23.46` changes two lines of
Cargo.lock (version and checksum). No companion bump: 0.23.46 declares
the same dependencies and MSRV. No windows-sys edge moves. The checksum
matches the crates.io index and the downloaded .crate.

The changelog entry scopes "no behaviour change" to the app's own code,
as 9abf474 did for the previous rustls bump: besides the four fixes,
0.23.46 carries about ten other TLS-layer corrections.

Verified locally, cargo-audit 0.22.2 (the CI binary) run from the repo
root: exit 1 with the four advisories before the bump, exit 0 after,
666 crates and the same 12 allowed warnings on both runs. cargo check,
both check-rust guards (2 and 9 checks, exit 0) and cargo test (267
passed, 0 failed) are green.

Refs #447

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Owner

CI lue ligne à ligne : PR Check — Rust, run 554, sur 1763a9f (pull/448/head), succès en 9 min 33.

Ligne attendue Log du job
Compiling rustls v0.23.46 l. 3573 (check) et l. 4066 (test)
Suppression guard: 2 checks, exit 0 l. 3718
windows-sys pinning: 9 checks, exit 0 l. 3728
test result: ok. 267 passed; 0 failed; 1 ignored l. 4475
cargo-audit-audit 0.22.2 (installé par taiki-e, sha256 vérifié) l. 4520
Scanning src-tauri/Cargo.lock for vulnerabilities (666 crate dependencies) l. 4525
warning: 12 allowed warnings found l. 4622

Zéro ligne error: N vulnerabilit…, zéro vulnerabilit(y|ies) found, zéro FAIL: et zéro FAILED, recherches faites sur le log débarrassé des codes ANSI. check-frontend n'a pas tourné, comme prévu.

Run à froid (No cache found) : la toolchain est passée de rustc 1.99.0 (run 523, chauffe du lundi 2026-10-12) à 1.99.1 (2026-10-13), et la clé du cache hache la version de rustc. C'est le premier cas de la liste en tête de check-rust.yml, pas un retour de #234 : aucun délai dépassé.

CI lue ligne à ligne : `PR Check — Rust`, run 554, sur `1763a9f` (`pull/448/head`), succès en 9 min 33. | Ligne attendue | Log du job | |---|---| | `Compiling rustls v0.23.46` | l. 3573 (check) et l. 4066 (test) | | `Suppression guard: 2 checks, exit 0` | l. 3718 | | `windows-sys pinning: 9 checks, exit 0` | l. 3728 | | `test result: ok. 267 passed; 0 failed; 1 ignored` | l. 4475 | | `cargo-audit-audit 0.22.2` (installé par taiki-e, sha256 vérifié) | l. 4520 | | `Scanning src-tauri/Cargo.lock for vulnerabilities (666 crate dependencies)` | l. 4525 | | `warning: 12 allowed warnings found` | l. 4622 | Zéro ligne `error: N vulnerabilit…`, zéro `vulnerabilit(y|ies) found`, zéro `FAIL:` et zéro `FAILED`, recherches faites sur le log débarrassé des codes ANSI. `check-frontend` n'a pas tourné, comme prévu. Run à froid (`No cache found`) : la toolchain est passée de rustc 1.99.0 (run 523, chauffe du lundi 2026-10-12) à 1.99.1 (2026-10-13), et la clé du cache hache la version de rustc. C'est le premier cas de la liste en tête de `check-rust.yml`, pas un retour de #234 : aucun délai dépassé.
Author
Owner

Revue adversariale — PR #448 (1763a9f)

Verdict : APPROVE

Résumé. Le bump de rustls 0.23.45 → 0.23.46 est exact et minimal (2 lignes du lock, une puce de CHANGELOG par langue). La mutation inverse rougit cargo audit sur les quatre IDs, la tête passe contre la base d'advisories du jour, et les quatre affirmations d'inatteignabilité du CHANGELOG tiennent à la lecture des avis et des sources.

Rejoué hors dépôt (copie git archive de 1763a9f dans /tmp)

Contrôle Résultat
Outil cargo-audit 0.22.2, archive musl de la CI, sha256 7fb9497f…c428 conforme au manifeste de taiki-e/install-action
Base d'advisories clonée à neuf (f28da8c, 2026-10-16), 1329 advisories
Lock de la tête exit 0, 666 crates, 12 warnings autorisés, mêmes IDs que le run 554
Mutation : les deux lignes remises en 0.23.45 (sha256 du lock muté identique à celui de main, ae174560…) exit 1, error: 4 vulnerabilities found! : RUSTSEC-2026-0346, -0347, -0348 et -0349, toutes sur rustls 0.23.45, « Upgrade to >=0.23.46 »
cargo tree --locked --offline -i rustls, Linux et Windows un seul chemin, tauri-plugin-updater 2.10.0 → reqwest 0.13.2 ; sha256 du lock identique avant et après
Index crates.io 0.23.46 non retirée (yanked), checksum identique au lock et au sha256 du .crate en cache ; dépendances, features et MSRV (1.71) identiques à la 0.23.45 ; dernière 0.23.x publiée

Le texte du CHANGELOG confronté aux sources

  • 0346 (Debug des valeurs de session) : l'avis exclut le cache de session intégré et ne vise qu'un ClientSessionStore maison. Aucune référence à ClientSessionStore ni à Tls12/13ClientSessionValue dans reqwest 0.13.2, hyper-rustls 0.27.7, tokio-rustls 0.26.4, rustls-platform-verifier 0.6.2, tauri-plugin-updater 2.10.0 et src-tauri/src ; la reprise de session reste celle par défaut de rustls, donc le cache intégré.
  • 0347 (ECH) : aucune référence à EchMode, EchConfig ou with_ech dans ces six emplacements ; l'avis exige EchMode::Enable.
  • 0348 (Brotli) : features résolues de rustls sur les deux cibles, ring, std et tls12 ; la strophe du lock ne dépend pas de brotli.
  • 0349 (repli vers un échange classique) : aws-lc-rs est absent du lock, tauri-plugin-updater installe ring quand aucun fournisseur n'est défini (src/updater.rs:445-448), et ring n'expose que X25519, SECP256R1 et SECP384R1 (rustls-0.23.46/src/crypto/ring/mod.rs:180-181). Aucun groupe hybride à faire retomber.
  • Autre moteur TLS pour les appels de l'application : les quatre fichiers qui utilisent reqwest (auth_commands, balance_commands, feedback_commands, license_commands) passent par le reqwest 0.12.28 de Cargo.toml:43, résolu en default-tls → hyper-tls → native-tls sur les deux cibles. Les fetch( du frontend ne lisent que des fichiers locaux (changelog).
  • « Une dizaine d'autres corrections » : les notes amont de v/0.23.46 listent, hors des quatre correctifs, les PR 3294, 3295 (change_cipher_spec protégés), 3312, 3318, 3325, 3332, 3333, 3337, 3340 et 3342 (mises à jour de clés TLS 1.3) ; 21 fichiers de src/ diffèrent. Restreindre « aucun changement » au code de l'application est exact, dans la ligne de 9abf474.
  • EN et FR disent la même chose, sous ### Security et ### Sécurité de la section non publiée ; git diff --check propre.

CI (run 554, lu dans le log)

Compiling rustls v0.23.46, Suppression guard: 2 checks, exit 0, windows-sys pinning: 9 checks, exit 0, 267 passed; 0 failed; 1 ignored, puis cargo-audit 0.22.2 : 1329 advisories, 666 crates, aucune ligne de vulnérabilité, 12 warnings autorisés. Le run à froid est expliqué : rustc 1.99.1 du 2026-10-13, No cache found., aucune ligne reserveCache, getCacheEntry ni timeout, cache sauvegardé. check-frontend n'a pas tourné, ce qui est attendu (paths-ignore : src-tauri/**, *.md) ; aucun test ne lit les CHANGELOG réels.

Ce que le run ne prouve pas seul : cargo check et cargo test tournent sans --locked, si bien qu'un lock commité incohérent serait re-résolu en silence avant les gardes en --locked. Ici, le log ne contient aucune ligne Locking, et cargo tree --locked laisse le lock intact en local : le lock compilé est celui qui est commité.

Fermeture de #447

Timeline : pull_ref de #448 en ref_action: none, et le commit ne porte que Refs #447. Le merge ne fermera pas l'issue, comme le prévoit la checklist post-merge (le plan de l'issue annonçait Resolves #447, mais sa dernière étape, la fermeture sur le run vert, donne raison à Refs). L'enjeu est confirmé : audit.yml est vert au run 552 (10-14), rouge aux runs 553 et 555 (10-15, puis 10-16 sur main 8620049) ; contre la base du jour, le lock de main ne ressort que sur ces quatre IDs, donc le workflow_dispatch post-merge passera au vert sauf nouvel avis publié d'ici là.

Suggestion (non bloquante, hors périmètre)

Ajouter --locked aux étapes cargo check et cargo test de check-rust.yml, et examiner le npx tauri build de release.yml, pour que la CI prouve elle-même que le lock audité est celui qu'on compile. Une issue de suivi suffit.

Actions faites

  • Copie de revue /tmp/pr448-review (arbre extrait, binaire cargo-audit, base d'advisories, lock muté, log du run 554) supprimée en fin de revue.
  • Aucun fichier du dépôt modifié.
## Revue adversariale — PR #448 (`1763a9f`) **Verdict : APPROVE** **Résumé.** Le bump de `rustls` 0.23.45 → 0.23.46 est exact et minimal (2 lignes du lock, une puce de CHANGELOG par langue). La mutation inverse rougit `cargo audit` sur les quatre IDs, la tête passe contre la base d'advisories du jour, et les quatre affirmations d'inatteignabilité du CHANGELOG tiennent à la lecture des avis et des sources. ### Rejoué hors dépôt (copie `git archive` de `1763a9f` dans `/tmp`) | Contrôle | Résultat | |---|---| | Outil | `cargo-audit` 0.22.2, archive musl de la CI, sha256 `7fb9497f…c428` conforme au manifeste de `taiki-e/install-action` | | Base d'advisories | clonée à neuf (`f28da8c`, 2026-10-16), 1329 advisories | | Lock de la tête | exit 0, 666 crates, 12 warnings autorisés, mêmes IDs que le run 554 | | **Mutation** : les deux lignes remises en 0.23.45 (sha256 du lock muté identique à celui de `main`, `ae174560…`) | exit 1, `error: 4 vulnerabilities found!` : RUSTSEC-2026-0346, -0347, -0348 et -0349, toutes sur `rustls` 0.23.45, « Upgrade to >=0.23.46 » | | `cargo tree --locked --offline -i rustls`, Linux et Windows | un seul chemin, `tauri-plugin-updater` 2.10.0 → `reqwest` 0.13.2 ; sha256 du lock identique avant et après | | Index crates.io | 0.23.46 non retirée (*yanked*), checksum identique au lock et au sha256 du `.crate` en cache ; dépendances, features et MSRV (1.71) identiques à la 0.23.45 ; dernière 0.23.x publiée | ### Le texte du CHANGELOG confronté aux sources - **0346** (`Debug` des valeurs de session) : l'avis exclut le cache de session intégré et ne vise qu'un `ClientSessionStore` maison. Aucune référence à `ClientSessionStore` ni à `Tls12/13ClientSessionValue` dans `reqwest` 0.13.2, `hyper-rustls` 0.27.7, `tokio-rustls` 0.26.4, `rustls-platform-verifier` 0.6.2, `tauri-plugin-updater` 2.10.0 et `src-tauri/src` ; la reprise de session reste celle par défaut de rustls, donc le cache intégré. - **0347** (ECH) : aucune référence à `EchMode`, `EchConfig` ou `with_ech` dans ces six emplacements ; l'avis exige `EchMode::Enable`. - **0348** (Brotli) : features résolues de `rustls` sur les deux cibles, `ring`, `std` et `tls12` ; la strophe du lock ne dépend pas de `brotli`. - **0349** (repli vers un échange classique) : `aws-lc-rs` est absent du lock, `tauri-plugin-updater` installe `ring` quand aucun fournisseur n'est défini (`src/updater.rs:445-448`), et `ring` n'expose que `X25519`, `SECP256R1` et `SECP384R1` (`rustls-0.23.46/src/crypto/ring/mod.rs:180-181`). Aucun groupe hybride à faire retomber. - **Autre moteur TLS pour les appels de l'application** : les quatre fichiers qui utilisent `reqwest` (`auth_commands`, `balance_commands`, `feedback_commands`, `license_commands`) passent par le `reqwest` 0.12.28 de `Cargo.toml:43`, résolu en `default-tls` → `hyper-tls` → `native-tls` sur les deux cibles. Les `fetch(` du frontend ne lisent que des fichiers locaux (changelog). - **« Une dizaine d'autres corrections »** : les notes amont de `v/0.23.46` listent, hors des quatre correctifs, les PR 3294, 3295 (`change_cipher_spec` protégés), 3312, 3318, 3325, 3332, 3333, 3337, 3340 et 3342 (mises à jour de clés TLS 1.3) ; 21 fichiers de `src/` diffèrent. Restreindre « aucun changement » au code de l'application est exact, dans la ligne de `9abf474`. - EN et FR disent la même chose, sous `### Security` et `### Sécurité` de la section non publiée ; `git diff --check` propre. ### CI (run 554, lu dans le log) `Compiling rustls v0.23.46`, `Suppression guard: 2 checks, exit 0`, `windows-sys pinning: 9 checks, exit 0`, `267 passed; 0 failed; 1 ignored`, puis `cargo-audit` 0.22.2 : 1329 advisories, 666 crates, aucune ligne de vulnérabilité, 12 warnings autorisés. Le run à froid est expliqué : rustc 1.99.1 du 2026-10-13, `No cache found.`, aucune ligne `reserveCache`, `getCacheEntry` ni timeout, cache sauvegardé. `check-frontend` n'a pas tourné, ce qui est attendu (`paths-ignore` : `src-tauri/**`, `*.md`) ; aucun test ne lit les CHANGELOG réels. **Ce que le run ne prouve pas seul** : `cargo check` et `cargo test` tournent sans `--locked`, si bien qu'un lock commité incohérent serait re-résolu en silence avant les gardes en `--locked`. Ici, le log ne contient aucune ligne `Locking`, et `cargo tree --locked` laisse le lock intact en local : le lock compilé est celui qui est commité. ### Fermeture de #447 Timeline : `pull_ref` de #448 en `ref_action: none`, et le commit ne porte que `Refs #447`. Le merge ne fermera pas l'issue, comme le prévoit la checklist post-merge (le plan de l'issue annonçait `Resolves #447`, mais sa dernière étape, la fermeture sur le run vert, donne raison à `Refs`). L'enjeu est confirmé : `audit.yml` est vert au run 552 (10-14), rouge aux runs 553 et 555 (10-15, puis 10-16 sur `main` `8620049`) ; contre la base du jour, le lock de `main` ne ressort que sur ces quatre IDs, donc le `workflow_dispatch` post-merge passera au vert sauf nouvel avis publié d'ici là. ### Suggestion (non bloquante, hors périmètre) Ajouter `--locked` aux étapes `cargo check` et `cargo test` de `check-rust.yml`, et examiner le `npx tauri build` de `release.yml`, pour que la CI prouve elle-même que le lock audité est celui qu'on compile. Une issue de suivi suffit. ### Actions faites - Copie de revue `/tmp/pr448-review` (arbre extrait, binaire `cargo-audit`, base d'advisories, lock muté, log du run 554) supprimée en fin de revue. - Aucun fichier du dépôt modifié.
maximus merged commit 1763a9fdd3 into main 2026-10-16 23:14:51 +00:00
maximus deleted branch issue-447-rustls-0.23.46 2026-10-16 23:14:52 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#448
No description provided.