PoPToP PPTP server remote buffer overflow

 Date de Publication: 2003-04-10
 K-Otik ID : 0009
 Titre: PoPToP PPTP server remote buffer overflow
 Class:
Design Error
 Exploitable à distance : Oui
 Exploitable en local : Non
 

 

  * Description Technique *
 
PPTP-over-IPSEC est généralement utilisé pour le déploiement de réseaux VPN. L'en-tête du paquet de PPTP contient une longueur de 16bits qui indique la taille normale du paquet :

 bytes_this = read(clientFd, packet + bytes_ttl, 2 - bytes_ttl);
// ...
        bytes_ttl += bytes_this;
// ...
length = htons(*(u_int16_t *) packet);
if (length > PPTP_MAX_CTRL_PCKT_SIZE) {
  // abort
}
 -------------------------------------------------------------------------
 bytes_this = read(clientFd, packet + bytes_ttl, length - bytes_ttl);

Le problème est que si la longueur (lenght) du paquet est placée à "0" ou "1", il sera donc possible de remplir une quantité illimitée de données.
Ce problème peut être exploité pour gagner l'accès système sur une machine Linux en utilisant libc. Cette vulnérabilité n'est pas exploitable sur Solaris et *BSD


  * Versions Vulnérables *
 
PoPToP 1.x sous Linux

  * Solution *
 
Bloquer le port PPTP pour les connexions Non-IPSEC, ou filitrer les IP.
 

   

 Audits de Sécurité & Tests Intrusifs F-VNS Security™  Mailing Listes Advisories  Service Publicitaire

Tous droits réservés © 2002-2004 K-OTiK Security Voir Notice Légale   

actualité informatique  Exploits