Skip to content

Drop the unmaintained rustls-pemfile and read PEM with pki-types [skip deploy] #no-deploy - #12

Merged
SebastianLopezO merged 2 commits into
mainfrom
security/cargo-audit/rustls-webpki-rustls-pemfile
Nov 1, 2026
Merged

SebastianLopezO merged 2 commits into
mainfrom
security/cargo-audit/rustls-webpki-rustls-pemfile

Conversation

@SebastianLopezO

@SebastianLopezO SebastianLopezO commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Caso

  • Origen: cargo-audit (code scanning) alertas deps: bump rustls-native-certs from 0.7.3 to 0.8.5 #1 a ci: bump github/codeql-action from 3 to 4 #6 y Dependabot alerts deps: bump rustls-native-certs from 0.7.3 to 0.8.5 #1 a deps: bump rumqttc from 0.24.0 to 0.25.1 #4; las seis de cargo-audit también
    aparecen en el escaneo central de .github.
  • Severidad: de baja a alta. rustls-webpki 0.102.8: RUSTSEC-2026-0098, -0099, -0382, -0049 y -0104 (restricciones de
    nombre, intermedios no confiables, CRL y un panic al leer CRL). rustls-pemfile 2.2.0: RUSTSEC-2025-0134 (sin
    mantenimiento).
  • Análisis: las dos llegan con rumqttc 0.25.1, que es la última versión publicada y fija rustls-webpki = "0.102".
    rumqttc solo usa ese crate como tipo de error (webpki::Error en tls.rs). El simulador arma su propio
    ClientConfig de rustls 0.23 (Transport::tls_with_config), así que la verificación de certificados la hace
    rustls-webpki 0.103.16, que ya trae los arreglos: el código vulnerable de la 0.102.8 se compila pero no se
    ejecuta. rustls-pemfile sí lo usábamos directamente.

Cambio

  • La CA se lee con CertificateDer::pem_file_iter (rustls::pki_types) en lugar de rustls-pemfile, y un archivo
    ilegible ahora deja un aviso en el log en vez de pasar en silencio.
  • rustls-native-certs 0.7 → 0.8 (ya no depende de rustls-pemfile).
  • rustls-pemfile sale de Cargo.toml; queda solo como dependencia transitiva de rumqttc.
  • .cargo/audit.toml acepta de forma explícita los seis avisos que solo llegan por rumqttc, con el motivo de cada uno
    y la condición para quitarlos. Sin esto, la compuerta RustSec de los PR bloquea cualquier cambio del repositorio
    por una falla que no tiene arreglo publicado y que no se ejecuta.

Verificación

  • cargo fmt --check, cargo clippy --all-targets -- -D warnings y cargo test en verde.
  • cargo tree -i rustls-pemfile y cargo tree -i rustls-webpki@0.102.8: solo cuelgan de rumqttc.

Después de fusionar

  • Las alertas de Dependabot que quedan por rumqttc se descartan con este análisis (código no usado) hasta que
    rumqttc publique una versión con rustls-webpki 0.103; Dependabot la propondrá.

@SebastianLopezO
SebastianLopezO merged commit 35856d8 into main Nov 1, 2026
6 checks passed
@SebastianLopezO
SebastianLopezO deleted the security/cargo-audit/rustls-webpki-rustls-pemfile branch November 1, 2026 03:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant