HTTP/2 protokoloaren hainbat inplementaziotan 8 DoS ahultasun identifikatu dira

Netflix eta Google-ko ikertzaileak agerian HTTP/2 protokoloaren hainbat inplementaziotan zortzi ahultasun daude, zerbitzuaren ukapena eragin dezaketen sareko eskaerak modu jakin batean bidaliz. Arazoak HTTP/2 euskarria duten HTTP zerbitzari gehienei eragiten die neurri batean eta langilea memoriarik gabe gelditzea edo CPU karga gehiegi sortzea eragiten du. Ahuleziak kentzen dituzten eguneraketak dagoeneko aurkezten dira nginx 1.16.1/1.17.3 ΠΈ H2O 2.2.6, baina oraingoz erabilgarri ez Apache httpd eta beste produktu batzuk.

Arazoak egitura bitarren erabilerarekin lotutako HTTP/2 protokoloan sartutako konplikazioak, konexioen barruan datu-fluxuak mugatzeko sistema bat, fluxuak lehenesteko mekanismoa eta HTTP/2 konexioan funtzionatzen duten ICMP antzeko kontrol-mezuen presentziaren ondorioz sortu ziren. maila (adibidez, ping, berrezarri eta fluxu ezarpenak). Inplementazio askok ez zuten behar bezala mugatu kontrol-mezuen fluxua, ez zuten lehentasunezko ilara modu eraginkorrean kudeatu eskaerak prozesatzen zituztenean edo fluxua kontrolatzeko algoritmoen inplementazio ez-optimoak erabili zituzten.

Identifikatutako eraso-metodo gehienak zerbitzariari eskaera batzuk bidaltzera heltzen dira, eta erantzun kopuru handia sortzen dute. Bezeroak ez badu socketeko datuak irakurtzen eta konexioa ixten ez badu, zerbitzariaren aldean erantzunen buffer-ilara etengabe betetzen da. Jokabide honek sareko konexioak prozesatzeko ilarak kudeatzeko sisteman karga sortzen du eta, inplementazio-eginbideen arabera, eskuragarri dauden memoria edo CPU baliabideak agortzea dakar.

Identifikatutako ahultasunak:

  • CVE-2019-9511 (Data Dribble) - erasotzaile batek datu-kopuru handia eskatzen du hainbat haritan irristakorra den leihoaren tamaina eta hariaren lehentasuna manipulatuz, zerbitzariak datuak 1-byte-ko blokeetan ilaran jartzera behartuz;
  • CVE-2019-9512 (Ping Flood) - erasotzaile batek etengabe pozoitzen ditu ping mezuak HTTP/2 konexio baten bidez, eta bidalitako erantzunen barne-ilarak gainezka eragiten du beste aldean;
  • CVE-2019-9513 (Baliabideen begizta) - erasotzaile batek hainbat eskaera-hari sortzen ditu eta harien lehentasuna etengabe aldatzen du, lehentasun-zuhaitza nahastea eraginez;
  • CVE-2019-9514 (Berrezarri Flood) - erasotzaile batek hainbat hari sortzen ditu
    eta hari bakoitzaren bidez eskaera baliogabe bat bidaltzen du, zerbitzariak RST_STREAM fotogramak bidaltzen dituelako, baina ez ditu onartzen erantzun-ilara betetzeko;

  • CVE-2019-9515 (Ezarpenak uholdea) - erasotzaileak "SETTINGS" fotograma hutsen korronte bat bidaltzen du, eta horren aurrean zerbitzariak eskaera bakoitza jaso duela aitortu behar du;
  • CVE-2019-9516 (0-Length Headers Leak) - Erasotzaileak goiburu-korronte bat bidaltzen du izen nuluarekin eta balio nulu batekin, eta zerbitzariak buffer bat esleitzen du memorian goiburu bakoitza gordetzeko eta ez du askatzen saioa amaitu arte. ;
  • CVE-2019-9517 (Internal Data Buffering) - erasotzailea irekitzen da
    HTTP/2 leiho irristakorra zerbitzariak datuak mugarik gabe bidal ditzan, baina TCP leihoa itxita mantentzen du, datuak socketean idaztea eragozten du. Jarraian, erasotzaileak erantzun handia eskatzen duten eskaerak bidaltzen ditu;

  • CVE-2019-9518 (Empty Frames Flood) - Erasotzaile batek DATA, HEADERS, CONTINUATION edo PUSH_PROMISE motako fotograma-korronte bat bidaltzen du, baina karga hutsarekin eta fluxua amaitzeko banderarik gabe. Zerbitzariak denbora pasatzen du fotograma bakoitza prozesatzen, erasotzaileak kontsumitzen duen banda-zabalerarekiko neurrigabea.

Iturria: opennet.ru

Gehitu iruzkin berria