Huit vulnérabilités DoS identifiées dans diverses mises en œuvre du protocole HTTP/2

Les chercheurs des entreprises Netflix et Google ont identifié ont identifié huit vulnérabilités dans diverses implémentations du protocole HTTP/2, permettant de provoquer un déni de service en envoyant un flux de requêtes réseau formatées d'une certaine manière. Les problèmes touchent dans une certaine mesure la plupart des serveurs HTTP prenant en charge HTTP/2, conduisant à l'épuisement de la mémoire disponible pour le traitement ou à une charge CPU excessive. Des mises à jour corrigeant ces vulnérabilités ont déjà été publiées dans nginx 1.16.1/1.17.3 et H2O 2.2.6, mais pour l'instant indisponibles pour Apache httpd et d'autres produits.

Les problèmes sont la conséquence de complications apportées au protocole HTTP/2, liées à l'utilisation de structures binaires, au système de limitation des flux de données à l'intérieur des connexions, au mécanisme de priorisation des flux et à la présence de messages de contrôle similaires à ICMP, opérant au niveau de la connexion HTTP/2 (par exemple, les opérations ping, de réinitialisation et de configuration de flux). De nombreuses implémentations n'ont pas correctement limité le flux de messages de contrôle, ont mal organisé le traitement de la file d'attente de priorités lors du traitement des requêtes ou ont utilisé des implémentations inefficaces des algorithmes de gestion du flux.

La plupart des méthodes d'attaque identifiées consistent à envoyer des requêtes spécifiques au serveur, générant un grand nombre de réponses. Si, dans ce cas, le client ne lit pas les données du socket et ne ferme pas la connexion, la file d'attente de mise en tampon des réponses côté serveur se remplit continuellement. Ce comportement crée une charge sur le système de gestion de la file d'attente de traitement des connexions réseau et, selon les spécificités de l'implémentation, conduit à l'épuisement de la mémoire disponible ou des ressources CPU.

Vulnérabilités identifiées :

  • CVE-2019-9511 (Data Dribble) — un attaquant demande un grand volume de données sur plusieurs flux, manipulant la taille de la fenêtre glissante et la priorité du flux, forçant le serveur à mettre en file d'attente les données par blocs de 1 octet;
  • CVE-2019-9512 (Ping Flood) — un attaquant inonde continuellement de messages ping via la connexion HTTP/2, initiant le remplissage de la file d'attente interne des réponses envoyées de l'autre côté;
  • CVE-2019-9513 (Resource Loop) — un attaquant crée plusieurs flux de requêtes et modifie continuellement les priorités des flux, provoquant un mélange de l'arborescence de priorités;
  • CVE-2019-9514 (Reset Flood) — un attaquant crée plusieurs flux
    et envoie à chaque flux une requête incorrecte, provoquant l'envoi par le serveur de trames RST_STREAM, mais ne les reçoit pas pour remplir la file d'attente des réponses;
  • CVE-2019-9515 (Inondation de paramètres) — un attaquant envoie un flux de trames vides «SETTINGS», auquel le serveur doit confirmer la réception de chaque requête;
  • CVE-2019-9516 (Fuite d'en-têtes de longueur 0) — un attaquant envoie un flux d'en-têtes avec des noms et des valeurs nuls, et le serveur alloue un tampon en mémoire pour chaque en-tête et ne le libère pas avant la fin de la session;
  • CVE-2019-9517 (Mise en mémoire tampon des données internes) — un attaquant ouvre
    une fenêtre glissante HTTP/2 pour envoyer des données au serveur sans restrictions, tout en maintenant la fenêtre TCP fermée, ce qui empêche en réalité l'écriture des données dans la socket. Ensuite, l'attaquant envoie des requêtes nécessitant une réponse importante;
  • CVE-2019-9518 (Inondation de trames vides) — un attaquant envoie un flux de trames de type DATA, HEADERS, CONTINUATION ou PUSH_PROMISE, mais avec un contenu utile vide et sans drapeau de fin de flux. Le serveur consacre du temps à traiter chaque trame, de manière disproportionnée par rapport à la bande passante consommée par l'attaquant.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster