Passage de cargo audit avant et après mise à jour complète des dépendances afin d'évaluer les CVEs existantes.
Avant (92 dépendances) : 0 vulnérabilité, mais 1 avertissement — RUSTSEC-2023-0086 (unsound : problèmes de soundness multiples) dans lexical-core 0.7.6, hérité via nom 5 ← imap-proto 0.10 ← imap 2.4.1.
Après (76 dépendances) : 0 vulnérabilité, 0 avertissement — la chaîne nom 5 / lexical-core / arrayvec / bitflags 1.x est entièrement éliminée.
Solution
Mises à jour des dépendances directes :
Dépendance
Avant
Après
Remarque
clap
4.5.53
4.6.6
compatible sémantique
imap
2.4.1
3.0.0-alpha.15
élimine la chaîne unsound ; native-tls reste le backend TLS par défaut
native-tls
0.2.14
0.2.18
toujours utilisé par le client POP3 custom
imap-proto
0.16.6
supprimée
inutilisée dans le code (reste présente transitivement via imap)
dotenvy
0.15.7
inchangée
déjà à jour
Plus cargo update pour toutes les dépendances transitives (ex. openssl 0.10.76, chrono 0.4.45, security-framework 3.7.0).
Migration du code dans src/imap_client/mod.rs (changements d'API d'imap 3.x) :
Type de session : imap::Session<imap::Connection> (connexion boxed)
append(...) retourne désormais un builder : .finish()
⚠️Point d'attention : imap 3.0.0-alpha.15 est une pré-release (fév. 2025, le crate cherche des mainteneurs). C'était la seule voie pour éliminer la chaîne de dépendances unsound en restant sur ce crate. Un test de fumée contre le serveur IMAP réel est recommandé avant déploiement (l'outil ajoute/supprime des mails).
Vérifications
cargo build --release : OK
cargo test : 8/8 OK
cargo clippy : uniquement les warnings préexistants
cargo audit : propre
## Contexte
Passage de `cargo audit` avant et après mise à jour complète des dépendances afin d'évaluer les CVEs existantes.
**Avant** (92 dépendances) : 0 vulnérabilité, mais 1 avertissement — `RUSTSEC-2023-0086` (unsound : problèmes de soundness multiples) dans `lexical-core 0.7.6`, hérité via `nom 5` ← `imap-proto 0.10` ← `imap 2.4.1`.
**Après** (76 dépendances) : **0 vulnérabilité, 0 avertissement** — la chaîne `nom 5` / `lexical-core` / `arrayvec` / `bitflags 1.x` est entièrement éliminée.
## Solution
Mises à jour des dépendances directes :
| Dépendance | Avant | Après | Remarque |
|------------|-------|-------|----------|
| `clap` | 4.5.53 | 4.6.6 | compatible sémantique |
| `imap` | 2.4.1 | 3.0.0-alpha.15 | élimine la chaîne unsound ; `native-tls` reste le backend TLS par défaut |
| `native-tls` | 0.2.14 | 0.2.18 | toujours utilisé par le client POP3 custom |
| `imap-proto` | 0.16.6 | supprimée | inutilisée dans le code (reste présente transitivement via `imap`) |
| `dotenvy` | 0.15.7 | inchangée | déjà à jour |
Plus `cargo update` pour toutes les dépendances transitives (ex. `openssl` 0.10.76, `chrono` 0.4.45, `security-framework` 3.7.0).
Migration du code dans `src/imap_client/mod.rs` (changements d'API d'imap 3.x) :
- `imap::connect(...)` → `imap::ClientBuilder::new(host, port).connect()`
- Type de session : `imap::Session<imap::Connection>` (connexion boxed)
- `append(...)` retourne désormais un builder : `.finish()`
⚠️ **Point d'attention** : `imap 3.0.0-alpha.15` est une pré-release (fév. 2025, le crate cherche des mainteneurs). C'était la seule voie pour éliminer la chaîne de dépendances unsound en restant sur ce crate. Un test de fumée contre le serveur IMAP réel est recommandé avant déploiement (l'outil ajoute/supprime des mails).
### Vérifications
- `cargo build --release` : OK
- `cargo test` : 8/8 OK
- `cargo clippy` : uniquement les warnings préexistants
- `cargo audit` : propre
Bump clap to 4.6.6, imap to 3.0.0-alpha.15 and native-tls to 0.2.18.
The imap upgrade removes the unsound lexical-core 0.7.6 dependency
inherited via nom 5 (RUSTSEC-2023-0086), leaving cargo audit clean.
Drop the unused imap-proto dependency and migrate to the imap 3.x
ClientBuilder and AppendCmd APIs.
herel
merged commit dc28f8ed65 into main2026-08-28 13:05:46 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
Passage de
cargo auditavant et après mise à jour complète des dépendances afin d'évaluer les CVEs existantes.Avant (92 dépendances) : 0 vulnérabilité, mais 1 avertissement —
RUSTSEC-2023-0086(unsound : problèmes de soundness multiples) danslexical-core 0.7.6, hérité vianom 5←imap-proto 0.10←imap 2.4.1.Après (76 dépendances) : 0 vulnérabilité, 0 avertissement — la chaîne
nom 5/lexical-core/arrayvec/bitflags 1.xest entièrement éliminée.Solution
Mises à jour des dépendances directes :
clapimapnative-tlsreste le backend TLS par défautnative-tlsimap-protoimap)dotenvyPlus
cargo updatepour toutes les dépendances transitives (ex.openssl0.10.76,chrono0.4.45,security-framework3.7.0).Migration du code dans
src/imap_client/mod.rs(changements d'API d'imap 3.x) :imap::connect(...)→imap::ClientBuilder::new(host, port).connect()imap::Session<imap::Connection>(connexion boxed)append(...)retourne désormais un builder :.finish()⚠️ Point d'attention :
imap 3.0.0-alpha.15est une pré-release (fév. 2025, le crate cherche des mainteneurs). C'était la seule voie pour éliminer la chaîne de dépendances unsound en restant sur ce crate. Un test de fumée contre le serveur IMAP réel est recommandé avant déploiement (l'outil ajoute/supprime des mails).Vérifications
cargo build --release: OKcargo test: 8/8 OKcargo clippy: uniquement les warnings préexistantscargo audit: propre