2 Kerentanan DoS wis diidentifikasi ing macem-macem implementasi protokol HTTP/8

Peneliti saka Netflix lan Google dicethakakΓ© Ana wolung kerentanan ing macem-macem implementasi protokol HTTP/2 sing bisa nyebabake penolakan layanan kanthi ngirim stream panjalukan jaringan kanthi cara tartamtu. Masalah mengaruhi paling server HTTP karo HTTP / 2 support kanggo sawetara derajat lan asil ing buruh kehabisan memori utawa nggawe kakehan beban CPU. Nganyari sing ngilangi kerentanan wis ditampilake ing nginx 1.16.1/1.17.3 ΠΈ H2O 2.2.6, nanging kanggo saiki ora kasedhiya kanggo Apache httpd lan produk liyane.

Masalah kasebut disebabake komplikasi sing disedhiyakake ing protokol HTTP / 2 sing ana gandhengane karo panggunaan struktur binar, sistem kanggo mbatesi aliran data ing sambungan, mekanisme prioritas aliran, lan ananΓ© pesen kontrol kaya ICMP sing beroperasi ing sambungan HTTP / 2. level (contone, ping, reset, lan setelan aliran). Akeh implementasine ora mbatesi aliran pesen kontrol kanthi bener, ora efisien ngatur antrian prioritas nalika ngolah panjalukan, utawa nggunakake implementasi suboptimal saka algoritma kontrol aliran.

Umume cara serangan sing diidentifikasi mudhun kanggo ngirim panjaluk tartamtu menyang server, sing ndadΓ©kakΓ© ngasilake tanggapan sing akeh. Yen klien ora maca data saka soket lan ora nutup sambungan, antrian buffering respon ing sisih server terus-terusan ngisi. Prilaku iki nggawe beban ing sistem manajemen antrian kanggo ngolah sambungan jaringan lan, gumantung saka fitur implementasine, ndadΓ©kakΓ© kekeselen memori sing kasedhiya utawa sumber daya CPU.

Kerentanan sing diidentifikasi:

  • CVE-2019-9511 (Data Dribble) - panyerang njaluk akeh data menyang pirang-pirang utas kanthi manipulasi ukuran jendhela geser lan prioritas utas, meksa server antri data ing blok 1-byte;
  • CVE-2019-9512 (Banjir Ping) - panyerang terus-terusan ngracuni pesen ping liwat sambungan HTTP/2, nyebabake antrian internal tanggapan sing dikirim menyang banjir ing sisih liya;
  • CVE-2019-9513 (Resource Loop) - panyerang nggawe pirang-pirang benang panjaluk lan terus-terusan ngganti prioritas utas, nyebabake wit prioritas dadi acak;
  • CVE-2019-9514 (Reset Banjir) - panyerang nggawe sawetara utas
    lan ngirim panjalukan ora bener liwat saben thread, nyebabake server ngirim pigura RST_STREAM, nanging ora nampa kanggo ngisi antrian respon;

  • CVE-2019-9515 (Settings Banjir) - panyerang ngirim stream kosong "SETTINGS" pigura, nanggepi kang server kudu ngakoni panrimo saka saben request;
  • CVE-2019-9516 (0-Length Headers Leak) - panyerang ngirim stream header kanthi jeneng null lan nilai null, lan server nyedhiyakake buffer ing memori kanggo nyimpen saben header lan ora ngeculake nganti sesi rampung. ;
  • CVE-2019-9517 (Buffering Data Internal) - penyerang mbukak
    HTTP / 2 jendhela ngusapake kanggo server ngirim data tanpa watesan, nanging tetep jendhela TCP ditutup, nyegah data saka bener ditulis menyang soket. Sabanjure, panyerang ngirim panjalukan sing mbutuhake respon gedhe;

  • CVE-2019-9518 (Banjir Bingkai Kosong) - Panyerang ngirim aliran pigura jinis DATA, HEADERS, CONTINUATION, utawa PUSH_PROMISE, nanging kanthi muatan kosong lan ora ana panji mandap aliran. Server mbuwang wektu kanggo ngolah saben pigura, ora proporsional karo bandwidth sing dikonsumsi dening panyerang.

Source: opennet.ru

Add a comment