Laboratoře CZ.NIC odhalily závažnou zranitelnost linuxového jádra

V rámci vývoje a testování softwaru pro nový router CZ.NICu Turris jsme objevili nebezpečnou chybu v linuxovém jádře, která umožňuje vzdáleně způsobit kernel panic; pád jádra lze vyvolat posláním vhodně zformátovaných IPv6 fragmentů. Podle našeho názoru má chyba potenciál na DoS útoky.

Ve skutečnosti se jedná o dvě chyby v různých částech Linuxového jádra, které mohou nastat při zpracování IPv6 datagramu s nekorektně vyplněným fragmentation headerem. První chyba je známá od května 2011 pod označením CVE-2011-1927 a byla opravena ve verzi 2.6.38.9 linuxového jádra. Nyní došlo k pravděpodobné regresi této chyby v aktuálních jádrech počínaje verzí 3.11 a v mailinglistu vývojářů síťových driverů a TCP/IP stacku už je k dispozici patch, který tuto chybu opravuje. Oprava bude pravděpodobně začleněna do nejbližší budoucí udržovací verze jádra.

Druhá chyba, která dosud nebyla známá, se netýká samotného sestavování fragmentů k předání vyšší vrstvě síťového modelu, ale týká se Netfilteru – Linuxového firewallu, který sestavuje IP packety (IPv4 i IPv6) jen virtuálně, aby o nich mohl rozhodnout podle pravidel v INPUT resp. FORWARD chainech v tabulce filter. Problém, na který jsme v Laboratořích CZ.NIC narazili je, že překrývající se fragmenty můžou vyvolat kernel panic za podmínky, že dochází k pokusu o virtuální sestavení datagramu a to pravděpodobně z velmi podobných důvodů, jako v případě první chyby.

Chybu jsme reportovali v mailinglistu a spolupracujeme na vytvoření patche s vývojáři Linuxového TCP/IP stacku a Netfilteru.

Tomáš Hlaváček

Autor:

Komentáře (3)

  1. Lubomir Rintel říká:

    Dobra praca, ako pani :)

    Inak lepsie nez na verejny mailing list je dobry napad veci s takymto security impactom (remotny crash) posielat na security@kernel.org. Embargo zvykne byt len par dni, ale pomoze to vendorom skoordinovat opravu a nehystericit.

  2. Tomáš Hlaváček říká:

    Máte pravdu a díky za připomínku!

    Mě v první chvíli ani moc nenapadlo, jestli to má security dopad a prostě jsem to reportoval jako chybu standardní cestou. Je to pro mně celé hodně poučné:-)

  3. Ondřej Caletka říká:

    Přidávám se s poděkováním za skvělou práci!

Zanechte komentář