On April 8, 2025, the OpenSSL Project released OpenSSL 3.5 — the library's next long-term support (LTS) release, maintained until April 2030. For the first time in OpenSSL's history, post-quantum cryptographic algorithms (ML-KEM, ML-DSA, SLH-DSA) ship out of the box, and the default TLS 1.3 keyshare is now the hybrid X25519MLKEM768 combining elliptic curve with quantum-resistant lattice cryptography. If your server runs OpenSSL 3.5 and your client also does, you get post-quantum protection with no configuration changes.

Le 8 avril 2025, le projet OpenSSL a publié OpenSSL 3.5 — la prochaine version à support long terme (LTS), maintenue jusqu'en avril 2030. Pour la première fois dans l'histoire d'OpenSSL, des algorithmes cryptographiques post-quantiques (ML-KEM, ML-DSA, SLH-DSA) sont embarqués nativement, et le keyshare TLS 1.3 par défaut est désormais l'hybride X25519MLKEM768, combinant la courbe elliptique X25519 avec la cryptographie lattice résistante aux ordinateurs quantiques. Si votre serveur tourne sur OpenSSL 3.5 et votre client aussi, vous bénéficiez de la protection post-quantique sans aucun changement de configuration.

But 2026 has not been kind to OpenSSL 3.5. January's security advisory packed 12 CVEs at once — all discovered by AI-driven autonomous analysis — including CVE-2025-15467, a CVSS 9.8 pre-authentication stack buffer overflow that can lead to remote code execution in any application parsing untrusted CMS messages. March brought CVE-2026-2673, a subtle flaw that silently degrades your carefully configured hybrid post-quantum TLS back to classical X25519 — with no error, no log line, no indication it happened. This article covers every CVE, their actual exploitability, and what Python, Rust, and Go developers need to do right now.

Mais 2026 n'a pas été clemente avec OpenSSL 3.5. L'avis de sécurité de janvier a apporté 12 CVE d'un coup — toutes découvertes par une analyse autonome pilotée par IA — dont CVE-2025-15467, un stack buffer overflow pré-auth CVSS 9.8 pouvant mener à une exécution de code à distance dans toute application parsant des messages CMS non fiables. Mars a apporté CVE-2026-2673, une faille subtile qui dégrade silencieusement votre TLS post-quantique hybride vers un X25519 classique — sans erreur, sans log, sans aucune indication. Cet article couvre chaque CVE, leur exploitabilité réelle, et ce que les développeurs Python, Rust et Go doivent faire maintenant.

12
CVEs in OpenSSL's January 2026 advisory — all AI-discovered
CVE dans l'avis OpenSSL de janvier 2026 — toutes découvertes par IA
Source: OpenSSL Security Advisory, January 27 2026 / AISLE Research
9.8
CVSS score for CVE-2025-15467 — pre-auth RCE in CMS parsing
Score CVSS de CVE-2025-15467 — RCE pré-auth dans le parsing CMS
Source: NVD / Orca Security, January 2026
5 years
LTS support for OpenSSL 3.5 (April 2025 → April 2030)
Support LTS d'OpenSSL 3.5 (avril 2025 → avril 2030)
Source: openssl-library.org, Release Timeline
25+
Years some CVE-2025-15467-related code was in OpenSSL (inherited from SSLeay 1990s)
Années que certains codes liés à CVE-2025-15467 étaient dans OpenSSL (hérité de SSLeay années 90)
Source: Schneier on Security / AISLE Research, February 2026

What Is OpenSSL 3.5 and Why It Matters for Every Developer

Qu'est-ce qu'OpenSSL 3.5 et pourquoi c'est important pour tous les développeurs

OpenSSL is the world's most widely deployed TLS/SSL library. It underpins Node.js, Python's ssl module, the cryptography and pyOpenSSL packages, Rust's openssl crate, Apache, Nginx, curl, PostgreSQL, and hundreds of thousands of other programs. When OpenSSL ships a new version, every layer of the software stack eventually follows.

OpenSSL est la bibliothèque TLS/SSL la plus déployée au monde. Elle sous-tend Node.js, le module ssl de Python, les packages cryptography et pyOpenSSL, le crate Rust openssl, Apache, Nginx, curl, PostgreSQL, et des centaines de milliers d'autres programmes. Quand OpenSSL publie une nouvelle version, chaque couche de la pile logicielle finit par suivre.

OpenSSL 3.5 (April 2025) is the sixth major release in the 3.x series and the designated LTS successor to OpenSSL 3.0 (supported until September 2026). Here are the headline changes relevant to security-conscious developers:

OpenSSL 3.5 (avril 2025) est la sixième version majeure de la série 3.x et le successeur LTS d'OpenSSL 3.0 (supporté jusqu'en septembre 2026). Voici les changements importants pour les développeurs soucieux de la sécurité :

OpenSSL 3.5 CVE Landscape in 2026: 12 CVEs in One Day

Paysage CVE d'OpenSSL 3.5 en 2026 : 12 CVE en un seul jour

On January 27, 2026, the OpenSSL Project published a single advisory covering 12 vulnerabilities. All were discovered by AISLE Research using AI-driven autonomous security analysis that began scanning OpenSSL in August 2025. Three had already been disclosed in late 2025; the remaining nine were held for coordinated release. This was the largest single OpenSSL advisory in years and included the first High-severity vulnerability found in OpenSSL since 2022.

Le 27 janvier 2026, le projet OpenSSL a publié un unique avis couvrant 12 vulnérabilités. Toutes ont été découvertes par AISLE Research via une analyse autonome pilotée par IA qui a commencé à analyser OpenSSL en août 2025. Trois avaient déjà été divulguées fin 2025 ; les neuf restantes ont été retenues pour une publication coordonnée. C'était le plus grand avis OpenSSL depuis des années et incluait la première vulnérabilité Haute sévérité depuis 2022.

CVE-2025-15467 — CVSS 9.8 — Pre-Auth Stack Buffer Overflow (RCE)

CVE-2025-15467 — CVSS 9.8 — Stack Buffer Overflow Pré-Auth (RCE)

The most severe CVE in the January 2026 advisory. A stack buffer overflow occurs in OpenSSL's CMS AuthEnvelopedData parsing when processing AEAD-encrypted messages (e.g., AES-GCM). OpenSSL allocates a fixed 16-byte buffer on the stack for the IV, but an attacker can craft a message with an IV larger than 16 bytes. The overflow happens before any cryptographic verification — no keys, no authentication, no legitimate content needed. Just a crafted CMS message over the network is enough to crash the process or potentially achieve RCE.

La CVE la plus sévère de l'avis de janvier 2026. Un stack buffer overflow se produit dans le parsing CMS AuthEnvelopedData d'OpenSSL lors du traitement de messages chiffrés AEAD (ex. AES-GCM). OpenSSL alloue un buffer fixe de 16 octets sur la pile pour l'IV, mais un attaquant peut forger un message avec un IV supérieur à 16 octets. L'overflow survient avant toute vérification cryptographique — aucune clé, authentification ou contenu légitime n'est nécessaire. Un simple message CMS forgé envoyé sur le réseau suffit à planter le processus, voire obtenir un RCE.

Who is affected? Applications that parse untrusted CMS messages (S/MIME email processors, CMS signature verification services). Node.js is NOT affected — it does not expose OpenSSL's CMS APIs. Python applications using M2Crypto or direct CMS bindings may be affected. Most web servers (Apache, Nginx) are not affected since they don't process CMS.

Qui est affecté ? Les applications qui parsent des messages CMS non fiables (processeurs d'emails S/MIME, services de vérification de signature CMS). Node.js n'est PAS affecté — il n'expose pas les APIs CMS d'OpenSSL. Les applications Python utilisant M2Crypto ou des bindings CMS directs peuvent être affectées. La plupart des serveurs web (Apache, Nginx) ne sont pas affectés car ils ne traitent pas de CMS.

Affected versions: OpenSSL 3.0, 3.3, 3.4, 3.5, 3.6. (OpenSSL 3.1 and 3.2 were already EOL and will not receive patches.) A public PoC exploit was published on GitHub shortly after disclosure. Patch immediately to OpenSSL 3.5.5+ (released January 27, 2026).

Versions affectées : OpenSSL 3.0, 3.3, 3.4, 3.5, 3.6. (OpenSSL 3.1 et 3.2 étaient déjà en fin de vie et ne recevront pas de correctifs.) Un exploit PoC public a été publié sur GitHub peu après la divulgation. Patchez immédiatement vers OpenSSL 3.5.5+ (publié le 27 janvier 2026).

CVE-2026-2673 — Silent Post-Quantum TLS Downgrade

CVE-2026-2673 — Downgrade Silencieux du TLS Post-Quantique

Disclosed on March 13, 2026, this vulnerability is less dramatic but arguably more dangerous for organizations that believe they've enabled quantum-safe TLS. When an OpenSSL 3.5 or 3.6 TLS 1.3 server is configured with the DEFAULT keyword in its supported groups list — which includes hybrid post-quantum groups like X25519MLKEM768 — the server may fail to negotiate the expected preferred group when a client explicitly requests a classical-only group (X25519). The result: TLS falls back to X25519 without ML-KEM, without post-quantum protection, and without any error, warning or log entry.

Divulguée le 13 mars 2026, cette vulnérabilité est moins dramatique mais potentiellement plus dangereuse pour les organisations qui croient avoir activé le TLS quantum-safe. Lorsqu'un serveur TLS 1.3 OpenSSL 3.5 ou 3.6 est configuré avec le mot-clé DEFAULT dans sa liste de groupes supportés — qui inclut des groupes hybrides post-quantiques comme X25519MLKEM768 — le serveur peut ne pas négocier le groupe préféré attendu lorsqu'un client demande explicitement un groupe classique seul (X25519). Résultat : TLS revient à X25519 sans ML-KEM, sans protection post-quantique, sans erreur, avertissement ni ligne de log.

Affected versions: OpenSSL 3.5.0–3.5.5 and 3.6.0–3.6.1. Fixed in OpenSSL 3.5.6 (March 2026). If you configured X25519MLKEM768 for compliance with NIST post-quantum migration deadlines and you're running an affected version, your post-quantum protection may not be active.

Versions affectées : OpenSSL 3.5.0–3.5.5 et 3.6.0–3.6.1. Corrigée dans OpenSSL 3.5.6 (mars 2026). Si vous avez configuré X25519MLKEM768 pour la conformité aux délais de migration post-quantique NIST et que vous exécutez une version affectée, votre protection post-quantique peut ne pas être active.

CVE-2026-31790 — RSA KEM Uninitialized Memory (April 2026)

CVE-2026-31790 — Mémoire Non Initialisée RSA KEM (avril 2026)

A moderate-severity vulnerability disclosed in April 2026. During RSA KEM RSASVE encapsulation, uninitialized memory can be exposed to a malicious peer. The practical impact depends on what is adjacent in memory, but in theory it enables partial key material or session data leakage. Fixed in OpenSSL 3.5.6+. This CVE affects all applications using OpenSSL's RSA KEM APIs, which are used in specific TLS and CMS configurations.

Une vulnérabilité de sévérité modérée divulguée en avril 2026. Lors de l'encapsulation RSA KEM RSASVE, de la mémoire non initialisée peut être exposée à un pair malveillant. L'impact pratique dépend de ce qui est adjacent en mémoire, mais en théorie cela permet une fuite partielle de matériel de clé ou de données de session. Corrigée dans OpenSSL 3.5.6+. Cette CVE affecte toutes les applications utilisant les APIs RSA KEM d'OpenSSL, utilisées dans des configurations TLS et CMS spécifiques.

Python Ecosystem Impact: cryptography, pyOpenSSL & M2Crypto

Impact sur l'écosystème Python : cryptography, pyOpenSSL & M2Crypto

Python's cryptographic ecosystem is almost entirely built on top of OpenSSL. The cryptography package (the foundation for pyOpenSSL, paramiko, Fernet, and dozens of others) ships pre-compiled wheels that embed a specific OpenSSL version. This means pip upgrade alone is not enough — you need to upgrade the cryptography package itself to get a version compiled against patched OpenSSL binaries.

L'écosystème cryptographique de Python est presque entièrement construit au-dessus d'OpenSSL. Le package cryptography (la base de pyOpenSSL, paramiko, Fernet et des dizaines d'autres) est livré avec des wheels précompilées embarquant une version spécifique d'OpenSSL. Cela signifie qu'un simple pip upgrade ne suffit pas — vous devez mettre à jour le package cryptography lui-même pour obtenir une version compilée avec les binaires OpenSSL corrigés.

Check your OpenSSL version in Python Vérifier votre version OpenSSL en Python
# Check what OpenSSL version your Python ssl module uses
import ssl
print(ssl.OPENSSL_VERSION)
# Expected: OpenSSL 3.5.6 xx xxx xxxx

# Check cryptography package's embedded OpenSSL
from cryptography.hazmat.backends.openssl import backend
print(backend.openssl_version_text())
# Expected: OpenSSL 3.5.6 ...

# Check pyOpenSSL version
import OpenSSL
print(OpenSSL.__version__)  # Should be 26.2.0+ (released May 4, 2026)

pyOpenSSL 26.2.0 (released May 4, 2026) updated its dependency bounds to require cryptography >= 45.0.7 which embeds OpenSSL 3.5.6. If you're on an older pyOpenSSL, you're running against a version of OpenSSL that may be vulnerable to CVE-2026-2673 (post-quantum downgrade) and CVE-2026-31790 (memory exposure). Upgrade immediately:

pyOpenSSL 26.2.0 (publié le 4 mai 2026) a mis à jour ses dépendances pour exiger cryptography >= 45.0.7, qui embarque OpenSSL 3.5.6. Si vous êtes sur un pyOpenSSL plus ancien, vous exécutez contre une version d'OpenSSL potentiellement vulnérable à CVE-2026-2673 et CVE-2026-31790. Mettez à jour immédiatement :

Upgrade Python crypto packages Mettre à jour les packages crypto Python
pip install --upgrade cryptography pyOpenSSL

# Verify
python -c "from cryptography.hazmat.backends.openssl import backend; print(backend.openssl_version_text())"
# Should show OpenSSL 3.5.6 or later

Two additional CVEs affected the Python cryptography package in 2026 due to its OpenSSL dependency: CVE-2026-34073 allowed an attacker to create a malicious public key that could reveal portions of a private key when using uncommon binary elliptic curves. CVE-2026-39892 allowed non-contiguous buffers to be passed to OpenSSL APIs, potentially triggering a buffer overflow. Both are fixed in cryptography >= 45.0.7 compiled with OpenSSL 3.5.6.

Deux CVE supplémentaires ont affecté le package Python cryptography en 2026 via sa dépendance OpenSSL : CVE-2026-34073 permettait à un attaquant de créer une clé publique malveillante pouvant révéler des portions de clé privée avec des courbes elliptiques binaires inhabituelles. CVE-2026-39892 permettait de passer des buffers non contigus aux APIs OpenSSL, déclenchant potentiellement un buffer overflow. Les deux sont corrigées dans cryptography >= 45.0.7 compilé avec OpenSSL 3.5.6.

Rust Ecosystem: openssl Crate vs. rustls

Ecosystème Rust : Crate openssl vs. rustls

Rust developers have two main paths for TLS: the openssl crate (which wraps the system or bundled OpenSSL), and rustls (a pure-Rust TLS implementation that does not use OpenSSL at all). If your project uses the openssl crate, you may be linking against a vulnerable system OpenSSL.

Les développeurs Rust ont deux voies principales pour le TLS : le crate openssl (qui enveloppe OpenSSL système ou intégré), et rustls (une implémentation TLS pure Rust qui n'utilise pas OpenSSL du tout). Si votre projet utilise le crate openssl, vous liez peut-être contre un OpenSSL système vulnérable.

Check OpenSSL version linked by your Rust binary Vérifier la version OpenSSL liée à votre binaire Rust
# Check system OpenSSL version
openssl version
# Should be OpenSSL 3.5.6 xx xxx xxxx

# In your Rust code, check at runtime:
# use openssl::version::version;
# println!("OpenSSL version: {}", openssl::version::version());

# Use cargo audit to find known CVEs in your dependency tree
cargo install cargo-audit
cargo audit

If your Rust codebase processes untrusted CMS messages via the openssl crate's CMS module (openssl::cms), you are exposed to CVE-2025-15467. Most Rust web applications using openssl for standard HTTPS traffic are not affected by CVE-2025-15467 since they don't invoke CMS parsing. However, you remain at risk from CVE-2026-2673 if you rely on post-quantum TLS.

Si votre codebase Rust traite des messages CMS non fiables via le module CMS du crate openssl (openssl::cms), vous êtes exposé à CVE-2025-15467. La plupart des applications web Rust utilisant openssl pour le HTTPS standard ne sont pas affectées par CVE-2025-15467 car elles n'invoquent pas le parsing CMS. Cependant, vous restez à risque de CVE-2026-2673 si vous vous fiez au TLS post-quantique.

Recommendation for Rust developers: If you don't need CMS functionality, consider migrating from the openssl crate to rustls + tokio-rustls. The rustls stack has built-in ML-KEM support via the rustls-post-quantum feature and is immune to all OpenSSL CVEs by design. For projects that must stay on the openssl crate, pin to a version that uses the vendored feature to embed OpenSSL 3.5.6+ at compile time.

Recommandation pour les développeurs Rust : Si vous n'avez pas besoin de la fonctionnalité CMS, envisagez de migrer du crate openssl vers rustls + tokio-rustls. La pile rustls dispose du support ML-KEM intégré via la fonctionnalité rustls-post-quantum et est immunée à toutes les CVE OpenSSL par conception. Pour les projets qui doivent rester sur le crate openssl, fixez une version qui utilise la fonctionnalité vendored pour embarquer OpenSSL 3.5.6+ à la compilation.

Enabling Post-Quantum TLS Correctly in 2026

Activer le TLS Post-Quantique Correctement en 2026

OpenSSL 3.5 makes post-quantum TLS almost automatic — but CVE-2026-2673 shows that "almost automatic" has a failure mode. Here's how to verify and enforce PQC in production:

OpenSSL 3.5 rend le TLS post-quantique presque automatique — mais CVE-2026-2673 montre que "presque automatique" a un mode de défaillance. Voici comment vérifier et imposer le PQC en production :

Verify post-quantum TLS is active with openssl s_client Vérifier que le TLS post-quantique est actif avec openssl s_client
# Connect to your server and check negotiated groups
openssl s_client -connect your-server.com:443 -groups X25519MLKEM768 2>&1 | grep "Server Temp Key"
# Expected: Server Temp Key: X25519MLKEM768, ...

# If you see only "X25519" without MLKEM, CVE-2026-2673 may be active
# Upgrade to OpenSSL 3.5.6+ immediately

# Explicitly configure preferred groups in your server's openssl.cnf:
# [system_default_sect]
# Groups = X25519MLKEM768:X25519:P-256
Python: Enforce post-quantum TLS groups explicitly Python : Imposer les groupes TLS post-quantiques explicitement
import ssl

context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.minimum_version = ssl.TLSVersion.TLSv1_3

# On OpenSSL 3.5.6+, explicitly set groups to avoid CVE-2026-2673 fallback
# (requires Python 3.13+ with set_groups support, or use OP_PRIORITIZE_CHACHA)
# For older Python, upgrade openssl system package to 3.5.6+

# Verify post-quantum via connection
import urllib.request
https_handler = urllib.request.HTTPSHandler(context=context)
opener = urllib.request.build_opener(https_handler)
# Check server response headers for TLS group info

OpenSSL Migration Guide: From 3.0 and 3.3 to 3.5.6+

Guide de Migration OpenSSL : De 3.0 et 3.3 vers 3.5.6+

OpenSSL 3.0 (the current default on Ubuntu 22.04, RHEL 9, and Debian 12) reaches end of life in September 2026. OpenSSL 3.3 reached end of life in November 2025. If you are running either, you are already unpatched against CVE-2025-15467 and CVE-2026-2673.

OpenSSL 3.0 (la version par défaut actuelle sur Ubuntu 22.04, RHEL 9 et Debian 12) atteint la fin de vie en septembre 2026. OpenSSL 3.3 a atteint la fin de vie en novembre 2025. Si vous exécutez l'un ou l'autre, vous n'êtes déjà pas protégé contre CVE-2025-15467 et CVE-2026-2673.

Upgrade OpenSSL on common Linux distributions Mettre à jour OpenSSL sur les distributions Linux courantes
# Ubuntu / Debian — check available version
apt-cache show openssl | grep Version
apt-get update && apt-get upgrade openssl libssl-dev

# RHEL / CentOS / AlmaLinux
dnf update openssl

# Verify after upgrade
openssl version
# Target: OpenSSL 3.5.6 or later

# Check all processes still using the old library (without restart)
lsof | grep "libssl" | awk '{print $1}' | sort -u
# These processes need a restart to load the patched library

Breaking changes from 3.0/3.3 to 3.5: The default TLS groups now include hybrid PQC groups. Clients that don't support X25519MLKEM768 (older versions of curl, some embedded TLS stacks) may fail to connect. Use openssl s_client -connect host:443 to test compatibility before rolling out. The DES-EDE3-CBC to AES-256-CBC change for CMS/SMIME operations may require updates to any code that generates or verifies these message formats.

Changements incompatibles de 3.0/3.3 à 3.5 : Les groupes TLS par défaut incluent maintenant des groupes PQC hybrides. Les clients qui ne supportent pas X25519MLKEM768 (anciennes versions de curl, certaines piles TLS embarquées) peuvent échouer à se connecter. Utilisez openssl s_client -connect host:443 pour tester la compatibilité avant le déploiement. Le changement DES-EDE3-CBC vers AES-256-CBC pour les opérations CMS/SMIME peut nécessiter des mises à jour dans tout code qui génère ou vérifie ces formats de messages.

OpenSSL 3.5 Security Checklist for Developers

Checklist Sécurité OpenSSL 3.5 pour Développeurs

Frequently Asked Questions

Questions fréquentes

Is my Node.js application affected by CVE-2025-15467?

Mon application Node.js est-elle affectée par CVE-2025-15467 ?

No. Node.js bundles its own version of OpenSSL but does not expose the CMS APIs that contain the vulnerability. The Node.js security team confirmed this in their January 2026 advisory. Your HTTPS servers are not at risk from CVE-2025-15467 via Node.js. However, you should still check if you have any dependency that uses native addons calling OpenSSL's CMS functions directly.

Non. Node.js embarque sa propre version d'OpenSSL mais n'expose pas les APIs CMS contenant la vulnérabilité. L'équipe sécurité Node.js l'a confirmé dans son avis de janvier 2026. Vos serveurs HTTPS ne sont pas à risque via CVE-2025-15467 dans Node.js. Cependant, vérifiez si vous avez des dépendances utilisant des add-ons natifs appelant directement les fonctions CMS d'OpenSSL.

How do I know if my post-quantum TLS is being silently downgraded?

Comment savoir si mon TLS post-quantique est silencieusement dégradé ?

Run openssl s_client -connect your-server.com:443 2>&1 | grep "Server Temp Key". If you see only X25519 without MLKEM768, and you're on OpenSSL 3.5.0–3.5.5, CVE-2026-2673 is likely active. Upgrading to OpenSSL 3.5.6+ resolves the issue. Also check that your openssl.cnf or application TLS configuration doesn't rely on the DEFAULT keyword for groups without explicit PQC group specification.

Lancez openssl s_client -connect votre-serveur.com:443 2>&1 | grep "Server Temp Key". Si vous voyez seulement X25519 sans MLKEM768, et que vous êtes sur OpenSSL 3.5.0–3.5.5, CVE-2026-2673 est probablement active. La mise à jour vers OpenSSL 3.5.6+ résout le problème. Vérifiez aussi que votre openssl.cnf ou configuration TLS applicative ne s'appuie pas sur le mot-clé DEFAULT pour les groupes sans spécification explicite de groupe PQC.

Should I migrate from OpenSSL to rustls in Rust projects?

Devrais-je migrer d'OpenSSL vers rustls dans mes projets Rust ?

For new projects, rustls is the better choice: it's memory-safe by construction, supports TLS 1.3 natively, has ML-KEM post-quantum support, and is immune to OpenSSL CVEs. For existing projects using the openssl crate, migration requires replacing your TLS stack across the codebase, which is non-trivial. As a minimum, ensure your openssl crate version embeds OpenSSL 3.5.6+ via the vendored feature, and run cargo audit in CI.

Pour les nouveaux projets, rustls est le meilleur choix : il est sûr par construction, supporte TLS 1.3 nativement, a le support ML-KEM post-quantique, et est immuné aux CVE OpenSSL. Pour les projets existants utilisant le crate openssl, la migration nécessite de remplacer votre pile TLS dans tout le codebase, ce qui est non trivial. Au minimum, assurez-vous que votre version du crate openssl embarque OpenSSL 3.5.6+ via la fonctionnalité vendored, et exécutez cargo audit en CI.

What is X25519MLKEM768 and is it safe to enable?

Qu'est-ce que X25519MLKEM768 et est-il sûr de l'activer ?

X25519MLKEM768 is a hybrid TLS 1.3 key exchange combining classical X25519 elliptic curve with ML-KEM-768 (a NIST-standardized lattice-based post-quantum algorithm, FIPS 203). The hybrid design means your session is secure even if one algorithm is broken — you need to break both simultaneously. It's supported by Chrome 131+, Firefox 135+, and OpenSSL 3.5+. The key consideration: it's larger than X25519 alone (larger ClientHello), which may cause issues with TLS proxies or load balancers that have strict size limits on handshake records.

X25519MLKEM768 est un échange de clés TLS 1.3 hybride combinant la courbe elliptique classique X25519 avec ML-KEM-768 (un algorithme post-quantique basé sur les lattices standardisé par le NIST, FIPS 203). La conception hybride signifie que votre session est sécurisée même si un algorithme est compromis — il faudrait casser les deux simultanément. Il est supporté par Chrome 131+, Firefox 135+ et OpenSSL 3.5+. Point clé : il est plus grand que X25519 seul (ClientHello plus large), ce qui peut poser problème avec des proxies TLS ou des load balancers ayant des limites strictes sur la taille des enregistrements de handshake.

My server is Ubuntu 22.04. Am I still on OpenSSL 3.0?

Mon serveur est sous Ubuntu 22.04. Suis-je toujours sur OpenSSL 3.0 ?

Yes, Ubuntu 22.04 LTS ships with OpenSSL 3.0.x as the default system package. Ubuntu's security team backports critical CVE patches to the 3.0 branch, but you are not getting the OpenSSL 3.5 features (post-quantum, new cipher defaults) without manually upgrading. To get OpenSSL 3.5 on Ubuntu 22.04, you'll need to install from the OpenSSL team's upstream packages or compile from source — or upgrade to Ubuntu 24.04 which ships OpenSSL 3.x from the 3.3/3.4 series. Plan your migration path with awareness that Ubuntu 22.04 LTS support itself runs until 2027.

Oui, Ubuntu 22.04 LTS est livré avec OpenSSL 3.0.x comme package système par défaut. L'équipe sécurité d'Ubuntu backporte les correctifs CVE critiques vers la branche 3.0, mais vous n'obtenez pas les fonctionnalités OpenSSL 3.5 (post-quantique, nouveaux chiffrements par défaut) sans mise à jour manuelle. Pour obtenir OpenSSL 3.5 sur Ubuntu 22.04, vous devrez installer depuis les packages upstream de l'équipe OpenSSL ou compiler depuis les sources — ou passer à Ubuntu 24.04. Planifiez votre chemin de migration en sachant que le support d'Ubuntu 22.04 LTS lui-même court jusqu'en 2027.

How does CVE-2025-15467 compare to Heartbleed?

Comment CVE-2025-15467 se compare-t-elle à Heartbleed ?

Both are pre-authentication OpenSSL vulnerabilities affecting network-reachable services, and both have CVSS scores in the 9+ range. But the attack surfaces differ significantly. Heartbleed (CVE-2014-0160) affected every HTTPS connection because it exploited the TLS heartbeat extension used in all TLS handshakes. CVE-2025-15467 only affects services that parse untrusted CMS/S-MIME messages — a much smaller subset of deployments. That said, any system processing email signed content, CMS-based document signing, or S-MIME handling is at critical risk and must patch immediately.

Les deux sont des vulnérabilités OpenSSL pré-authentification affectant les services accessibles réseau, et toutes deux ont des scores CVSS 9+. Mais les surfaces d'attaque diffèrent significativement. Heartbleed (CVE-2014-0160) affectait chaque connexion HTTPS car il exploitait l'extension heartbeat TLS utilisée dans tous les handshakes. CVE-2025-15467 n'affecte que les services parsant des messages CMS/S-MIME non fiables — un sous-ensemble bien plus petit de déploiements. Cela dit, tout système traitant du contenu email signé, de la signature de documents CMS, ou du S-MIME est en risque critique et doit patcher immédiatement.

Monitor OpenSSL vulnerabilities across all your projects automatically

Surveillez les vulnérabilités OpenSSL sur tous vos projets automatiquement

CVE OptiBot scans your lockfiles daily — requirements.txt, Cargo.lock, package-lock.json — and alerts you the moment a new CVE affects a dependency that uses OpenSSL. When CVE-2025-15467 dropped, teams using CVE OptiBot knew within hours. No code access required: just upload your lockfile and start monitoring.

CVE OptiBot scanne vos lockfiles chaque jour — requirements.txt, Cargo.lock, package-lock.json — et vous alerte dès qu'une nouvelle CVE affecte une dépendance utilisant OpenSSL. Quand CVE-2025-15467 est sortie, les équipes utilisant CVE OptiBot l'ont su en quelques heures. Aucun accès au code requis : chargez simplement votre lockfile et commencez à surveiller.

Start free monitoring Démarrer le monitoring gratuit