2 Kerentanan DoS telah dikenal pasti dalam pelbagai pelaksanaan protokol HTTP/8

Penyelidik dari Netflix dan Google didedahkan Terdapat lapan kelemahan dalam pelbagai pelaksanaan protokol HTTP/2 yang boleh menyebabkan penafian perkhidmatan dengan menghantar aliran permintaan rangkaian dengan cara tertentu. Masalahnya menjejaskan kebanyakan pelayan HTTP dengan sokongan HTTP/2 pada tahap tertentu dan mengakibatkan pekerja kehabisan memori atau mencipta beban CPU yang terlalu banyak. Kemas kini yang menghapuskan kelemahan sudah dibentangkan dalam nginx 1.16.1/1.17.3 ΠΈ H2O 2.2.6, tetapi buat masa ini tidak ada untuk Apache httpd dan produk lain.

Masalah yang timbul daripada komplikasi yang diperkenalkan ke dalam protokol HTTP/2 yang berkaitan dengan penggunaan struktur binari, sistem untuk mengehadkan aliran data dalam sambungan, mekanisme keutamaan aliran, dan kehadiran mesej kawalan seperti ICMP yang beroperasi pada sambungan HTTP/2 tahap (contohnya, ping, tetapan semula dan tetapan aliran). Banyak pelaksanaan tidak mengehadkan aliran mesej kawalan dengan betul, tidak mengurus baris gilir keutamaan dengan cekap semasa memproses permintaan, atau menggunakan pelaksanaan suboptimum algoritma kawalan aliran.

Kebanyakan kaedah serangan yang dikenal pasti datang untuk menghantar permintaan tertentu kepada pelayan, yang membawa kepada penjanaan sejumlah besar respons. Jika pelanggan tidak membaca data dari soket dan tidak menutup sambungan, baris gilir penimbalan tindak balas di sebelah pelayan akan terus terisi. Tingkah laku ini menghasilkan beban pada sistem pengurusan baris gilir untuk memproses sambungan rangkaian dan, bergantung pada ciri pelaksanaan, membawa kepada kehabisan memori yang tersedia atau sumber CPU.

Kelemahan yang dikenal pasti:

  • CVE-2019-9511 (Data Dribble) - penyerang meminta sejumlah besar data ke dalam berbilang benang dengan memanipulasi saiz tetingkap gelongsor dan keutamaan benang, memaksa pelayan untuk beratur data dalam blok 1-bait;
  • CVE-2019-9512 (Banjir Ping) - penyerang secara berterusan meracuni mesej ping melalui sambungan HTTP/2, menyebabkan baris gilir dalaman respons yang dihantar banjir di sisi lain;
  • CVE-2019-9513 (Gelung Sumber) - penyerang mencipta berbilang utas permintaan dan terus menukar keutamaan utas, menyebabkan pokok keutamaan dikocok;
  • CVE-2019-9514 (Tetapkan Semula Banjir) - penyerang mencipta berbilang rangkaian
    dan menghantar permintaan yang tidak sah melalui setiap urutan, menyebabkan pelayan menghantar bingkai RST_STREAM, tetapi tidak menerimanya untuk mengisi baris gilir respons;

  • CVE-2019-9515 (Tetapan Banjir) - penyerang menghantar aliran bingkai "SETTINGS" kosong, sebagai tindak balas yang pelayan mesti mengakui penerimaan setiap permintaan;
  • CVE-2019-9516 (0-Length Headers Leak) – penyerang menghantar aliran pengepala dengan nama nol dan nilai nol, dan pelayan memperuntukkan penimbal dalam ingatan untuk menyimpan setiap pengepala dan tidak melepaskannya sehingga sesi tamat ;
  • CVE-2019-9517 (Penimbalan Data Dalaman) - penyerang dibuka
    Tetingkap gelongsor HTTP/2 untuk pelayan menghantar data tanpa sekatan, tetapi memastikan tetingkap TCP ditutup, menghalang data daripada benar-benar ditulis ke soket. Seterusnya, penyerang menghantar permintaan yang memerlukan respons yang besar;

  • CVE-2019-9518 (Banjir Bingkai Kosong) - Penyerang menghantar aliran bingkai jenis DATA, HEADERS, CONTINUATION atau PUSH_PROMISE, tetapi dengan muatan kosong dan tiada bendera penamatan aliran. Pelayan menghabiskan masa memproses setiap bingkai, tidak seimbang dengan lebar jalur yang digunakan oleh penyerang.

Sumber: opennet.ru

Tambah komen