
Exploit de preuve de concept pour CVE-2022-30114, un débordement de tampon basé sur le tas dans les routeurs Fastweb FastGate. Envoie un en-tête HTTP Authorization malveillant pour déclencher un déni de service distant via le service cmproxy FastCGI.
Ce script est une preuve de concept (PoC) de la CVE-2022-30114 et provoque un redémarrage des routeurs domestiques Fastweb FastGate , versions GPON et VDSL2.
La CVE-2022-30114 est un débordement de tampon basé sur le tas dans l'exécutable 'cmproxy', un programme qui traite les requêtes HTTP via un serveur web Lighttpd FastCGI écoutant sur le port TCP 8888. Une requête HTTP spécialement conçue permet à un attaquant distant de faire planter l'exécutable et de redémarrer l'appareil, causant un déni de service.
Les appareils sont vulnérables à un débordement de tampon basé sur le tas, causé par l'absence de validation de la longueur de la valeur de l'en-tête HTTP 'Authorization' sur le service web exposé sur le port TCP 8888. Le service est exposé à la fois sur les interfaces WAN et LAN de l'appareil1.
Un attaquant distant non authentifié, envoyant une chaîne de plus de 100 octets dans l'en-tête HTTP 'Authorization', provoque un débordement dans un tampon pré-alloué dans la section mémoire '.bss' d'un fichier exécutable appelé 'cmproxy' qui traite les requêtes HTTP envoyées sur le service mentionné ci-dessus via le protocole FastCGI.
Cela permet d'écraser la mémoire du tas du processus, ce qui le corrompt et le fait planter lors de la première allocation mémoire. Il est à noter que la version de la bibliothèque C utilisée (GNU C Library - glibc v2.24) contient des mesures de protection pour détecter la corruption du tas, mais il n'est pas exclu, cependant, qu'en approfondissant l'analyse, il soit possible d'écraser les structures du tas et d'obtenir une exécution de code.
Voir Article de blog pour plus de détails.
L'accès WAN a été désactivé comme mesure compensatoire après la première divulgation à Fastweb. Au moment de la rédaction, le service est toujours exposé sur le réseau local interne. ↩