Onze octets suffisent pour saturer un serveur : la faille OpenSSL HollowByte
Onze octets. C’est tout ce qu’il faut à un attaquant distant et non authentifié pour saturer la mémoire d’un serveur via OpenSSL. Cette faille, nommée HollowByte, a été corrigée en silence, sans la moindre référence CVE pour la signaler.
Onze octets pour geler la mémoire d’un serveur
Le problème provient de la manière dont OpenSSL gère le début d’une négociation TLS. Chaque message de handshake débute par un en-tête de 4 octets, dont 3 indiquent la taille du corps du message à venir. Les versions vulnérables faisaient une confiance aveugle à cette valeur, réservant un tampon de réception de la taille annoncée avant même de recevoir des données.
Ainsi, un paquet malveillant de seulement 11 octets peut entraîner une allocation de mémoire non validée pouvant atteindre 131 Ko. Pendant ce temps, le fil d’exécution attend des données qui n’arriveront jamais. Cette technique rappelle la vulnérabilité Slowloris, mais HollowByte introduit un effet d’accumulation lié à la bibliothèque glibc. Lorsque la connexion de l’attaquant se termine, OpenSSL libère le tampon, mais glibc ne rend pas immédiatement au système d’exploitation les allocations de petite et moyenne taille, les conservant pour un réemploi éventuel.
En lançant des vagues de connexions de tailles aléatoires, l’attaquant empêche le recyclage de ces blocs libérés. La mémoire du serveur se fragmente, entraînant une augmentation constante de la mémoire résidente. Selon l’équipe Red Team d’Okta, « même après la déconnexion de l’attaquant, le serveur reste durablement gonflé. La seule façon de récupérer cette mémoire est de terminer le processus. »
Un correctif sans CVE : c’est un problème
L’équipe d’OpenSSL a corrigé ce problème dans la version 4.0.1, publiée le 9 juin 2026. Ce correctif a été discrètement intégré et rétroporté vers les versions 3.6.3, 3.5.7, 3.4.6 et 3.0.21. Cependant, aucune référence CVE n’a été attribuée à HollowByte, ce qui signifie que cette faille de sécurité est méconnue des scanners et ne sera pas détectée. OpenSSL a traité ce problème comme un simple correctif de durcissement, sans le considérer comme une vulnérabilité de sécurité.
La version 4.0.1 corrige 18 CVE, mais aucune ne correspond à HollowByte. Ce problème de sécurité a été colmaté en silence, bien qu’il existe une trace dans les commits du code source.
Source : Okta
