Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Pierwszy w historii exploit na krytyczną podatność w implementacji HTTP2 (HAProxy, CVE-2020-11100)
Podatność została niedawno temu załatana w HAProxy i została od razu zaklasyfikowana jako krytyczna. Twórcy HAProxy piszą asekurancko, że nie powinno się dać wykorzystać luki, no może co najwyżej być crash, a w nowoczesnych systemach to już w ogóle jest tyle zabezpieczeń że hej! A tym czasem googlowy projekt zero opublikował exploita dającego RCE (remote code execution) na HAProxy uruchomionym na Ubuntu:
While the exploit is mostly config independent, it’s only tested against the attached minimal config based on the Ubuntu default configuration. The exploit should work very reliable on an idle server, but might crash against servers under high load.
O co chodzi w problemie? Na względnie prostej manipulacji nagłówkami HTTP2 (są one nieco inne od zwykłych nagłówków HTTP). W akcji bierze też udział HPACK (używany jest do kompresji nagłówków H2). W ramach przypomnienia – komunikacja HTTP2 wygląda mniej więcej tak (rozbudowane rozdziały dotyczące HTTP oraz HTTP2 można również znaleźć w naszej książce):
Do tej pory podatności w implementacjach HTTP2 były najczęściej klasy DoS. Sama omawiana podatność w skrócie:
Inserting a zero-length header into a wrapped http2 hpack table incorrectly uses the headroom (hpack-tbl.c:351), creates overlapping tailrooms and can lead to an integer underflow in the tailroom calculation in hpack-tbl.c:342. This can be used to corrupt the descriptor array at the beginning of the table.
Warto oczywiście się ASAP załatać oraz załatać produkty, które korzystają z HAProxy.
–ms