
Preuve de concept pour un débordement de tampon critique dans la gestion DNS de Kemp LoadMaster, provoquant un déni de service à distance via des requêtes DNS malveillantes.
Les appareils Kemp LoadMaster (firmware < 7.2.60) souffrent d'une vulnérabilité critique de débordement de tampon dans les méthodes isreverse() et locate_fqdn() de la bibliothèque libkemplink.so. La vulnérabilité provient d'un tampon de 256 octets sous-allocé pour les noms DNS, qui peut être exploité en envoyant une requête DNS spécialement conçue contenant des caractères spéciaux ou Unicode.
Une exploitation réussie entraîne un crash immédiat et une condition de déni de service (DoS). La présence d'un jeton canary de pile empêche une exploitation plus poussée, mais la possibilité d'exécution de code à distance (RCE) ne peut être exclue si un attaquant trouve une autre vulnérabilité pour divulguer le jeton canary de pile.
La vulnérabilité est facilement déclenchée en envoyant une requête DNS sur TCP ou UDP aux services DNS exposés de l'appareil LoadMaster. Une preuve de concept simple est :
dig @kempdeviceip 😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀😀😀.😀😀.com (Sur certaines distributions Linux, vous devrez ajouter +noidnout +noidnin)
L'exploit exploite une étape spécifique du processus de résolution de noms DNS. Bien que le tampon alloué de 256 octets soit la taille maximale standard pour les noms DNS transmis sur le réseau, et que la preuve de concept s'inscrive dans cette limite, les caractères spéciaux et Unicode augmentent en taille lorsqu'ils sont échappés lors du traitement. Ainsi, la taille du tampon après échappement dépasse l'allocation initiale. La documentation et le code source de la bibliothèque Bind9 (dont le composant DNS est dérivé) indiquent qu'un tampon d'au moins 1004 octets est nécessaire pour un fonctionnement sûr, avec une taille de tampon prudente recommandée de 1023 octets. Pour plus de détails, voir .
Chronologie :