[security] deps: RUSTSEC-2026-0346 à -0349 (rustls) — l'audit quotidien est rouge depuis le 2026-10-15 #447

Closed
opened 2026-10-16 01:22:34 +00:00 by maximus · 2 comments
Owner

Constat

audit.yml échoue depuis le 2026-10-15 à 06:00 UTC (run 553). Le dernier vert est celui de la veille (run 552). src-tauri/Cargo.lock n'a pas bougé depuis le 2026-10-08 (e4db715, release v0.17.1) : le rouge vient de quatre advisories publiées entre les deux tirs, pas d'un changement de code.

Extrait du log du run 553 :

Crate:     rustls
Version:   0.23.45
Title:     Brotli certificate decompression can allocate up to 1 GiB before authentication
Date:      2026-10-14
ID:        RUSTSEC-2026-0348
Severity:  3.7 (low)
Solution:  Upgrade to >=0.23.46
[... RUSTSEC-2026-0346, -0349 et -0347 : même crate, même version, même solution]
error: 4 vulnerabilities found!
warning: 12 allowed warnings found

Repéré le jour même au démarrage de session (/warmup), contre 17 jours en #343 et 7 en #348. Le Défenseur n'a rien signalé : il n'audite pas les dépendances Rust (voir « Hors périmètre »).

Les advisories

Les quatre visent rustls 0.23.45, sont datées du 2026-10-14 et sont corrigées en >= 0.23.46.

ID Alias Catégorie CVSS Objet
RUSTSEC-2026-0346 GHSA-c8m5-c952-6cm4 crypto-failure 4.0 medium Le Debug dérivé de Tls12ClientSessionValue et Tls13ClientSessionValue affiche le master secret TLS 1.2 ou la PSK de reprise TLS 1.3. Seul un ClientSessionStore maison qui formate ces valeurs (dans un journal, par exemple) les expose ; le Debug des connexions et du cache de session intégré est expurgé.
RUSTSEC-2026-0347 GHSA-vp88-798v-h67f crypto-failure 2.3 low Après un rejet d'ECH, les données écrites avant la fin de la poignée de main partent vers le serveur public (public_name). Ne touche que les clients en EchMode::Enable.
RUSTSEC-2026-0348 GHSA-h2v8-394m-p7vv denial-of-service 3.7 low Le décompresseur Brotli de certificats (feature brotli, non activée par défaut) accepte une fenêtre choisie par le pair : un en-tête de 5 octets fait allouer 1 Gio avant toute authentification.
RUSTSEC-2026-0349 GHSA-w44r-93j7-qv28 crypto-failure 3.7 low Le client mémorise le groupe d'échange de clés choisi par le serveur avant de l'avoir authentifié. Un attaquant réseau peut faire retomber les connexions suivantes de X25519MLKEM768 à X25519 seul : perte de la confidentialité post-quantique, sans autre effet.

Atteignabilité

Méthode de l'ADR 0018 : cargo tree -i rustls par triple livré. Arbre identique sur x86_64-unknown-linux-gnu et x86_64-pc-windows-msvc :

rustls v0.23.45
├── hyper-rustls v0.27.7
│   └── reqwest v0.13.2
│       └── tauri-plugin-updater v2.10.0
│           └── simpl-result v0.17.1
├── reqwest v0.13.2 (*)
├── rustls-platform-verifier v0.6.2
│   └── reqwest v0.13.2 (*)
├── tauri-plugin-updater v2.10.0 (*)
└── tokio-rustls v0.26.4
    ├── hyper-rustls v0.27.7 (*)
    └── reqwest v0.13.2 (*)

Même chemin unique qu'en #348 : la vérification et le téléchargement des mises à jour automatiques. L'application ne dépend pas de rustls directement, et son propre reqwest 0.12.28 (Cargo.toml:43 : licence, authentification, cours, rétroaction) passe par hyper-tls → native-tls, hors de cet arbre.

Sur ce chemin, aucune des quatre n'est déclenchable :

ID Condition Mesure
0346 un ClientSessionStore maison Aucune implémentation ni référence à Tls12/13ClientSessionValue dans reqwest 0.13.2, hyper-rustls 0.27.7, tokio-rustls 0.26.4, rustls-platform-verifier 0.6.2 et tauri-plugin-updater 2.10.0, ni dans src-tauri/src.
0347 EchMode::Enable Aucune référence à EchMode, EchConfig ou with_ech dans ces cinq crates ni dans src-tauri/src.
0348 la feature brotli de rustls Features résolues : ring, std, tls12. La strophe rustls du lock ne dépend pas de brotli ; le brotli 8.0.2 du lock vient de tauri-codegen et tauri-utils.
0349 un groupe hybride post-quantique proposé Le fournisseur est ring, que tauri-plugin-updater installe quand aucun n'est défini (src/updater.rs:446-448) ; aws-lc-rs est absent du graphe des deux cibles. Les groupes de ring sont X25519, SECP256R1 et SECP384R1 : il n'y a rien à faire retomber.

La règle 1 de .cargo/audit.toml s'applique quand même : le crate est dans le graphe des deux cibles et un correctif est publié, donc ces advisories se corrigent et ne se suppriment pas. L'inatteignabilité mesurée ci-dessus sert au texte du CHANGELOG et à la décision de ne pas publier de release corrective, pas à une entrée de suppression.

Correctif

cargo update -p rustls → 0.23.46. Diff réel du lock : 2 lignes, 1 strophe (version et checksum). 666 paquets avant et après, Cargo.toml intouché.

  • Aucun bump compagnon : d'après l'index crates.io, la 0.23.46 déclare exactement les mêmes dépendances et bornes que la 0.23.45 (dont webpki ^0.103.14), avec la même MSRV (1.71). Non yanked. Contrairement à #348, rustls-webpki ne bouge pas.
  • Aucune dérive windows-sys : le diff ne contient aucune ligne windows-sys, et la garde de #345 reste verte. C'est la seconde mesure sur rustls après #348, avec le même résultat.

Vérifications

Faites le 2026-10-15 dans un worktree jetable sur main 8620049 :

  • cargo-audit 0.22.2, le binaire de la CI (sha256 de l'archive vérifié contre le manifeste de taiki-e/install-action), lancé depuis la racine du dépôt :
    • ancien lock : exit 1, error: 4 vulnerabilities found!, les quatre ci-dessus ;
    • nouveau lock : exit 0, 12 warnings autorisés, 1329 advisories chargées, 666 crates.
  • cargo metadata --locked : exit 0, lock non réécrit.
  • Checksum : le sha256sum du .crate téléchargé vaut 48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf, la valeur de l'index crates.io.
  • cargo check --locked --all-targets : exit 0, avec Compiling rustls v0.23.46.
  • Garde des suppressions rejouée : Suppression guard: 2 checks, exit 0.
  • Garde windows-sys rejouée : windows-sys pinning: 9 checks, exit 0.
  • cargo test --locked --all-targets : 267 passed, 0 failed, 1 ignored.

Analyse (2026-10-15)

Décisions

  • Correctif : bump de rustls vers 0.23.46. La suppression des quatre IDs est écartée : la règle 1 de .cargo/audit.toml l'interdit, puisque le crate est dans le graphe des deux cibles et qu'un correctif est publié.
  • Publication : avec le prochain tag, sans release corrective (décision de Max, 2026-10-15). Aucun des quatre avis n'est atteignable dans la v0.17.1 livrée.
  • ADR 0023 inchangé : la garde tient la version résolue ; une ligne de mesure de plus n'apporterait rien.

Travail à faire

  • cargo update -p rustls --precise 0.23.46, la version mesurée. Si une 0.23.47 paraît d'ici là, remesurer avant de la prendre.
  • Diff du lock : 2 lignes, aucune ligne windows-sys ; cargo metadata --locked sans réécriture.
  • cargo check --locked, cargo test --locked et les deux gardes, rejoués sur la branche.
  • Deuxième puce sous ### Security de [Unreleased] (CHANGELOG.md) et sous ### Sécurité de [Non publié] (CHANGELOG.fr.md), après celle de #358. Texte proposé ci-dessous.
  • Commit fix(deps): update rustls to 0.23.46 avec Resolves #447, PR, /pr-review, merge.
  • CI : lire le log de check-rust ligne à ligne : Compiling rustls v0.23.46, Suppression guard: 2 checks, exit 0, windows-sys pinning: 9 checks, exit 0, aucune vulnerability found dans l'étape cargo audit (qui est continue-on-error: true).
  • Après le merge : workflow_dispatch d'audit.yml sur main, puis fermeture sur ce run vert.

Fichiers concernés

  • src-tauri/Cargo.lock : strophe rustls, version et checksum.
  • CHANGELOG.md et CHANGELOG.fr.md : section Sécurité de [Unreleased].
  • Inchangés : src-tauri/Cargo.toml, .cargo/audit.toml, .forgejo/workflows/check-rust.yml, ADR 0023, docs/architecture.md.

Surface de test

  • Aucun test applicatif ne touche le lock. La couverture vient des étapes de check-rust : cargo check, garde des suppressions (rsa, canari tar), garde windows-sys (7 crates, canari tempfile), cargo test (267 tests), cargo audit ; puis d'audit.yml.
  • Test de régression : non requis. Le bump ne touche aucun code, et la non-régression est l'audit quotidien.

Critères d'acceptation

  • rustls 0.23.46, checksum 48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf, rien d'autre ne bouge dans le lock.
  • cargo audit 0.22.2 lancé depuis la racine du dépôt : 0 vulnérabilité, 12 warnings autorisés.
  • Gardes vertes (2/2 et 9/9), cargo test vert.
  • Entrée Sécurité dans les deux CHANGELOG.
  • Run workflow_dispatch d'audit.yml sur main vert, vérifié dans le log.

Complexité

Simple.

Entrées CHANGELOG proposées

CHANGELOG.md, sous ### Security :

  • Updated the Rust dependency rustls (0.23.45 → 0.23.46), clearing RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 and RUSTSEC-2026-0349. rustls is the TLS layer of the automatic update check and download, reached through tauri-plugin-updater; the application's own licence, authentication, market-price and feedback calls use a different TLS backend. None of the four applies to how the application uses it: no custom session store exists that could log session secrets (0346), Encrypted Client Hello is never enabled (0347), the optional Brotli certificate decompression is not compiled in (0348), and the ring cryptography provider offers no post-quantum key exchange that could be downgraded (0349). Updated anyway rather than reasoned around, since a fix exists. No behaviour change: only the lockfile moves, Cargo.toml is untouched (#447).

CHANGELOG.fr.md, sous ### Sécurité :

  • Mise à jour de la dépendance Rust rustls (0.23.45 → 0.23.46), corrigeant RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 et RUSTSEC-2026-0349. rustls est la couche TLS de la vérification et du téléchargement des mises à jour automatiques, atteinte via tauri-plugin-updater ; les appels de licence, d'authentification, de cours et de rétroaction de l'application passent par un autre moteur TLS. Aucune des quatre ne s'applique à l'usage qu'en fait l'application : aucun magasin de sessions maison ne peut journaliser de secret de session (0346), l'Encrypted Client Hello n'est jamais activé (0347), la décompression Brotli des certificats, optionnelle, n'est pas compilée (0348), et le fournisseur cryptographique ring ne propose aucun échange de clés post-quantique qui pourrait être rabattu (0349). Mise à jour quand même, plutôt que contournée par un raisonnement, puisqu'un correctif existe. Aucun changement de comportement : seul le fichier de verrouillage bouge, Cargo.toml est intouché (#447).

Hors périmètre

Le Défenseur n'a rien signalé parce que son check deps ne lance jamais cargo audit et ne cherche les manifestes Cargo qu'à la racine du dépôt : src-tauri/Cargo.lock n'est jamais lu. Les dépendances Rust de ce projet ne sont donc couvertes que par audit.yml. Décision de Max du 2026-10-15 : ajouter un sous-check cargo-audit au Défenseur, suivi dans maximus/agent-defenseurs#186.

## Constat `audit.yml` échoue depuis le **2026-10-15 à 06:00 UTC** (run 553). Le dernier vert est celui de la veille (run 552). `src-tauri/Cargo.lock` n'a pas bougé depuis le 2026-10-08 (`e4db715`, release v0.17.1) : le rouge vient de quatre advisories publiées entre les deux tirs, pas d'un changement de code. Extrait du log du run 553 : ``` Crate: rustls Version: 0.23.45 Title: Brotli certificate decompression can allocate up to 1 GiB before authentication Date: 2026-10-14 ID: RUSTSEC-2026-0348 Severity: 3.7 (low) Solution: Upgrade to >=0.23.46 [... RUSTSEC-2026-0346, -0349 et -0347 : même crate, même version, même solution] error: 4 vulnerabilities found! warning: 12 allowed warnings found ``` Repéré le jour même au démarrage de session (`/warmup`), contre 17 jours en #343 et 7 en #348. Le Défenseur n'a rien signalé : il n'audite pas les dépendances Rust (voir « Hors périmètre »). ## Les advisories Les quatre visent `rustls` 0.23.45, sont datées du 2026-10-14 et sont corrigées en `>= 0.23.46`. | ID | Alias | Catégorie | CVSS | Objet | |---|---|---|---|---| | [RUSTSEC-2026-0346](https://rustsec.org/advisories/RUSTSEC-2026-0346) | GHSA-c8m5-c952-6cm4 | crypto-failure | 4.0 medium | Le `Debug` dérivé de `Tls12ClientSessionValue` et `Tls13ClientSessionValue` affiche le master secret TLS 1.2 ou la PSK de reprise TLS 1.3. Seul un `ClientSessionStore` maison qui formate ces valeurs (dans un journal, par exemple) les expose ; le `Debug` des connexions et du cache de session intégré est expurgé. | | [RUSTSEC-2026-0347](https://rustsec.org/advisories/RUSTSEC-2026-0347) | GHSA-vp88-798v-h67f | crypto-failure | 2.3 low | Après un rejet d'ECH, les données écrites avant la fin de la poignée de main partent vers le serveur public (`public_name`). Ne touche que les clients en `EchMode::Enable`. | | [RUSTSEC-2026-0348](https://rustsec.org/advisories/RUSTSEC-2026-0348) | GHSA-h2v8-394m-p7vv | denial-of-service | 3.7 low | Le décompresseur Brotli de certificats (feature `brotli`, non activée par défaut) accepte une fenêtre choisie par le pair : un en-tête de 5 octets fait allouer 1 Gio avant toute authentification. | | [RUSTSEC-2026-0349](https://rustsec.org/advisories/RUSTSEC-2026-0349) | GHSA-w44r-93j7-qv28 | crypto-failure | 3.7 low | Le client mémorise le groupe d'échange de clés choisi par le serveur avant de l'avoir authentifié. Un attaquant réseau peut faire retomber les connexions suivantes de X25519MLKEM768 à X25519 seul : perte de la confidentialité post-quantique, sans autre effet. | ## Atteignabilité Méthode de l'[ADR 0018](docs/adr/0018-suppression-advisories-non-atteignables.md) : `cargo tree -i rustls` par triple livré. Arbre identique sur `x86_64-unknown-linux-gnu` et `x86_64-pc-windows-msvc` : ``` rustls v0.23.45 ├── hyper-rustls v0.27.7 │ └── reqwest v0.13.2 │ └── tauri-plugin-updater v2.10.0 │ └── simpl-result v0.17.1 ├── reqwest v0.13.2 (*) ├── rustls-platform-verifier v0.6.2 │ └── reqwest v0.13.2 (*) ├── tauri-plugin-updater v2.10.0 (*) └── tokio-rustls v0.26.4 ├── hyper-rustls v0.27.7 (*) └── reqwest v0.13.2 (*) ``` Même chemin unique qu'en #348 : la vérification et le téléchargement des mises à jour automatiques. L'application ne dépend pas de `rustls` directement, et son propre `reqwest` 0.12.28 (`Cargo.toml:43` : licence, authentification, cours, rétroaction) passe par `hyper-tls → native-tls`, hors de cet arbre. Sur ce chemin, aucune des quatre n'est déclenchable : | ID | Condition | Mesure | |---|---|---| | 0346 | un `ClientSessionStore` maison | Aucune implémentation ni référence à `Tls12/13ClientSessionValue` dans `reqwest` 0.13.2, `hyper-rustls` 0.27.7, `tokio-rustls` 0.26.4, `rustls-platform-verifier` 0.6.2 et `tauri-plugin-updater` 2.10.0, ni dans `src-tauri/src`. | | 0347 | `EchMode::Enable` | Aucune référence à `EchMode`, `EchConfig` ou `with_ech` dans ces cinq crates ni dans `src-tauri/src`. | | 0348 | la feature `brotli` de `rustls` | Features résolues : `ring`, `std`, `tls12`. La strophe `rustls` du lock ne dépend pas de `brotli` ; le `brotli` 8.0.2 du lock vient de `tauri-codegen` et `tauri-utils`. | | 0349 | un groupe hybride post-quantique proposé | Le fournisseur est `ring`, que `tauri-plugin-updater` installe quand aucun n'est défini (`src/updater.rs:446-448`) ; `aws-lc-rs` est absent du graphe des deux cibles. Les groupes de `ring` sont `X25519`, `SECP256R1` et `SECP384R1` : il n'y a rien à faire retomber. | La règle 1 de `.cargo/audit.toml` s'applique quand même : le crate est dans le graphe des deux cibles et un correctif est publié, donc ces advisories se corrigent et ne se suppriment pas. L'inatteignabilité mesurée ci-dessus sert au texte du CHANGELOG et à la décision de ne pas publier de release corrective, pas à une entrée de suppression. ## Correctif `cargo update -p rustls` → 0.23.46. Diff réel du lock : **2 lignes, 1 strophe** (version et checksum). 666 paquets avant et après, `Cargo.toml` intouché. - **Aucun bump compagnon** : d'après l'index crates.io, la 0.23.46 déclare exactement les mêmes dépendances et bornes que la 0.23.45 (dont `webpki ^0.103.14`), avec la même MSRV (1.71). Non *yanked*. Contrairement à #348, `rustls-webpki` ne bouge pas. - **Aucune dérive `windows-sys`** : le diff ne contient aucune ligne `windows-sys`, et la garde de #345 reste verte. C'est la seconde mesure sur `rustls` après #348, avec le même résultat. ## Vérifications Faites le 2026-10-15 dans un worktree jetable sur `main` `8620049` : - `cargo-audit 0.22.2`, le binaire de la CI (sha256 de l'archive vérifié contre le manifeste de `taiki-e/install-action`), lancé depuis la racine du dépôt : - ancien lock : exit **1**, `error: 4 vulnerabilities found!`, les quatre ci-dessus ; - nouveau lock : exit **0**, 12 warnings autorisés, 1329 advisories chargées, 666 crates. - `cargo metadata --locked` : exit 0, lock non réécrit. - Checksum : le `sha256sum` du `.crate` téléchargé vaut `48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf`, la valeur de l'index crates.io. - `cargo check --locked --all-targets` : exit 0, avec `Compiling rustls v0.23.46`. - Garde des suppressions rejouée : `Suppression guard: 2 checks, exit 0`. - Garde `windows-sys` rejouée : `windows-sys pinning: 9 checks, exit 0`. - `cargo test --locked --all-targets` : 267 passed, 0 failed, 1 ignored. ## Analyse (2026-10-15) ### Décisions - **Correctif** : bump de `rustls` vers 0.23.46. La suppression des quatre IDs est écartée : la règle 1 de `.cargo/audit.toml` l'interdit, puisque le crate est dans le graphe des deux cibles et qu'un correctif est publié. - **Publication** : avec le prochain tag, sans release corrective (décision de Max, 2026-10-15). Aucun des quatre avis n'est atteignable dans la v0.17.1 livrée. - **ADR 0023 inchangé** : la garde tient la version résolue ; une ligne de mesure de plus n'apporterait rien. ### Travail à faire - [ ] `cargo update -p rustls --precise 0.23.46`, la version mesurée. Si une 0.23.47 paraît d'ici là, remesurer avant de la prendre. - [ ] Diff du lock : 2 lignes, aucune ligne `windows-sys` ; `cargo metadata --locked` sans réécriture. - [ ] `cargo check --locked`, `cargo test --locked` et les deux gardes, rejoués sur la branche. - [ ] Deuxième puce sous `### Security` de `[Unreleased]` (`CHANGELOG.md`) et sous `### Sécurité` de `[Non publié]` (`CHANGELOG.fr.md`), après celle de #358. Texte proposé ci-dessous. - [ ] Commit `fix(deps): update rustls to 0.23.46` avec `Resolves #447`, PR, `/pr-review`, merge. - [ ] CI : lire le log de `check-rust` ligne à ligne : `Compiling rustls v0.23.46`, `Suppression guard: 2 checks, exit 0`, `windows-sys pinning: 9 checks, exit 0`, aucune `vulnerability found` dans l'étape `cargo audit` (qui est `continue-on-error: true`). - [ ] Après le merge : `workflow_dispatch` d'`audit.yml` sur `main`, puis fermeture sur ce run vert. ### Fichiers concernés - `src-tauri/Cargo.lock` : strophe `rustls`, version et checksum. - `CHANGELOG.md` et `CHANGELOG.fr.md` : section Sécurité de `[Unreleased]`. - Inchangés : `src-tauri/Cargo.toml`, `.cargo/audit.toml`, `.forgejo/workflows/check-rust.yml`, ADR 0023, `docs/architecture.md`. ### Surface de test - Aucun test applicatif ne touche le lock. La couverture vient des étapes de `check-rust` : `cargo check`, garde des suppressions (`rsa`, canari `tar`), garde `windows-sys` (7 crates, canari `tempfile`), `cargo test` (267 tests), `cargo audit` ; puis d'`audit.yml`. - Test de régression : non requis. Le bump ne touche aucun code, et la non-régression est l'audit quotidien. ### Critères d'acceptation - [ ] `rustls` 0.23.46, checksum `48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf`, rien d'autre ne bouge dans le lock. - [ ] `cargo audit` 0.22.2 lancé depuis la racine du dépôt : 0 vulnérabilité, 12 warnings autorisés. - [ ] Gardes vertes (2/2 et 9/9), `cargo test` vert. - [ ] Entrée Sécurité dans les deux CHANGELOG. - [ ] Run `workflow_dispatch` d'`audit.yml` sur `main` vert, vérifié dans le log. ### Complexité Simple. ### Entrées CHANGELOG proposées `CHANGELOG.md`, sous `### Security` : > - Updated the Rust dependency `rustls` (0.23.45 → 0.23.46), clearing RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 and RUSTSEC-2026-0349. `rustls` is the TLS layer of the automatic update check and download, reached through `tauri-plugin-updater`; the application's own licence, authentication, market-price and feedback calls use a different TLS backend. None of the four applies to how the application uses it: no custom session store exists that could log session secrets (0346), Encrypted Client Hello is never enabled (0347), the optional Brotli certificate decompression is not compiled in (0348), and the `ring` cryptography provider offers no post-quantum key exchange that could be downgraded (0349). Updated anyway rather than reasoned around, since a fix exists. No behaviour change: only the lockfile moves, `Cargo.toml` is untouched (#447). `CHANGELOG.fr.md`, sous `### Sécurité` : > - Mise à jour de la dépendance Rust `rustls` (0.23.45 → 0.23.46), corrigeant RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348 et RUSTSEC-2026-0349. `rustls` est la couche TLS de la vérification et du téléchargement des mises à jour automatiques, atteinte via `tauri-plugin-updater` ; les appels de licence, d'authentification, de cours et de rétroaction de l'application passent par un autre moteur TLS. Aucune des quatre ne s'applique à l'usage qu'en fait l'application : aucun magasin de sessions maison ne peut journaliser de secret de session (0346), l'Encrypted Client Hello n'est jamais activé (0347), la décompression Brotli des certificats, optionnelle, n'est pas compilée (0348), et le fournisseur cryptographique `ring` ne propose aucun échange de clés post-quantique qui pourrait être rabattu (0349). Mise à jour quand même, plutôt que contournée par un raisonnement, puisqu'un correctif existe. Aucun changement de comportement : seul le fichier de verrouillage bouge, `Cargo.toml` est intouché (#447). ## Hors périmètre Le Défenseur n'a rien signalé parce que son check `deps` ne lance jamais `cargo audit` et ne cherche les manifestes Cargo qu'à la racine du dépôt : `src-tauri/Cargo.lock` n'est jamais lu. Les dépendances Rust de ce projet ne sont donc couvertes que par `audit.yml`. Décision de Max du 2026-10-15 : ajouter un sous-check `cargo-audit` au Défenseur, suivi dans maximus/agent-defenseurs#186.
maximus added the
status:triage
type:security
source:human
labels 2026-10-16 01:22:34 +00:00
maximus added
status:ready
and removed
status:triage
labels 2026-10-16 01:28:07 +00:00
maximus added
status:in-progress
and removed
status:ready
labels 2026-10-16 01:57:09 +00:00
maximus added
status:review
and removed
status:in-progress
labels 2026-10-16 02:01:09 +00:00
maximus added
status:approved
and removed
status:review
labels 2026-10-16 23:07:59 +00:00
Author
Owner

PR #448 mergée en fast-forward par l'API : main = 1763a9f. Le tip a été validé avant le merge, dans un worktree propre à la tête de la PR : npm ci, sonde rouge (rc=1), build, 2222 tests vitest, cargo check --locked, gardes (2/2 et 9/9), cargo test --locked (267 passed), cargo audit exit 0 (666 crates, 12 warnings autorisés).

L'issue reste ouverte, puisque la PR ne la cite qu'en Refs : elle attend le run workflow_dispatch d'audit.yml sur main, lancé à la suite de ce commentaire, et sera fermée à la main sur ce run vert.

PR #448 mergée en fast-forward par l'API : `main` = `1763a9f`. Le tip a été validé avant le merge, dans un worktree propre à la tête de la PR : `npm ci`, sonde rouge (rc=1), build, 2222 tests vitest, `cargo check --locked`, gardes (2/2 et 9/9), `cargo test --locked` (267 passed), `cargo audit` exit 0 (666 crates, 12 warnings autorisés). L'issue reste ouverte, puisque la PR ne la cite qu'en `Refs` : elle attend le run `workflow_dispatch` d'`audit.yml` sur `main`, lancé à la suite de ce commentaire, et sera fermée à la main sur ce run vert.
maximus added
status:blocked
and removed
status:approved
labels 2026-10-16 23:15:16 +00:00
Author
Owner

Run workflow_dispatch d'audit.yml sur main vert : run 556, sur 1763a9f (merge fast-forward de la PR #448), lancé le 2026-10-16 à 23:15 UTC.

Log lu, codes ANSI retirés :

  • cargo-audit-audit 0.22.2, installé par taiki-e/install-action ;
  • Loaded 1329 security advisories ;
  • Scanning src-tauri/Cargo.lock for vulnerabilities (666 crate dependencies) ;
  • warning: 12 allowed warnings found, avec les mêmes IDs que les runs locaux d'avant et d'après le bump ;
  • aucune ligne error: N vulnerabilit…, aucune mention de RUSTSEC-2026-0346 à -0349 ;
  • Job succeeded.

Critères d'acceptation :

  • rustls 0.23.46, checksum 48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf, rien d'autre ne bouge dans le lock.
  • cargo audit 0.22.2 : 0 vulnérabilité, 12 warnings autorisés (en local, puis aux runs 554 et 556).
  • Gardes vertes (2/2 et 9/9) et cargo test à 267 passed (run 554, puis tip validé en worktree propre).
  • Entrée Sécurité dans les deux CHANGELOG. Sa formulation restreint « aucun changement » au code de l'application, comme 9abf474 : la 0.23.46 apporte aussi une dizaine d'autres corrections de la couche TLS (voir la PR #448).
  • Run workflow_dispatch d'audit.yml sur main vert : run 556.

Fermée à la main. À rouvrir si l'un des quatre IDs réapparaît dans audit.yml.

Suites : #449 (--locked dans la CI, suggestion de la revue de la PR #448) ; le trou du Défenseur est suivi dans maximus/agent-defenseurs#186 ; la prochaine release doit dérouler le cycle réel de mise à jour de docs/qa-update-cycle.md, ce bump touchant une dépendance de tauri-plugin-updater.

Run `workflow_dispatch` d'`audit.yml` sur `main` vert : **run 556**, sur `1763a9f` (merge fast-forward de la PR #448), lancé le 2026-10-16 à 23:15 UTC. Log lu, codes ANSI retirés : - `cargo-audit-audit 0.22.2`, installé par `taiki-e/install-action` ; - `Loaded 1329 security advisories` ; - `Scanning src-tauri/Cargo.lock for vulnerabilities (666 crate dependencies)` ; - `warning: 12 allowed warnings found`, avec les mêmes IDs que les runs locaux d'avant et d'après le bump ; - aucune ligne `error: N vulnerabilit…`, aucune mention de RUSTSEC-2026-0346 à -0349 ; - `Job succeeded`. Critères d'acceptation : - [x] `rustls` 0.23.46, checksum `48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf`, rien d'autre ne bouge dans le lock. - [x] `cargo audit` 0.22.2 : 0 vulnérabilité, 12 warnings autorisés (en local, puis aux runs 554 et 556). - [x] Gardes vertes (2/2 et 9/9) et `cargo test` à 267 passed (run 554, puis tip validé en worktree propre). - [x] Entrée Sécurité dans les deux CHANGELOG. Sa formulation restreint « aucun changement » au code de l'application, comme `9abf474` : la 0.23.46 apporte aussi une dizaine d'autres corrections de la couche TLS (voir la PR #448). - [x] Run `workflow_dispatch` d'`audit.yml` sur `main` vert : run 556. Fermée à la main. À rouvrir si l'un des quatre IDs réapparaît dans `audit.yml`. Suites : #449 (`--locked` dans la CI, suggestion de la revue de la PR #448) ; le trou du Défenseur est suivi dans maximus/agent-defenseurs#186 ; la prochaine release doit dérouler le cycle réel de mise à jour de `docs/qa-update-cycle.md`, ce bump touchant une dépendance de `tauri-plugin-updater`.
maximus removed the
status:blocked
label 2026-10-16 23:17:18 +00:00
maximus referenced this issue from a commit 2026-10-16 23:21:59 +00:00
Sign in to join this conversation.
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#447
No description provided.