Mellékleteink: HUP | Gamekapocs
Keres

Súlyos hibát találtak az egyik legfontosabb Linux-könyvtárban

Voith Hunor, 2016. február 17. 10:48

A GNU C-ben a kliensoldali névfeloldó puffertúlcsordulásos sérülékenységét kihasználva távoli kódfuttatás érhető el. A hálózatra kötött linuxos gépeket érdemes azonnal frissíteni, de a hálózati eszközökre is figyeljünk oda.

Súlyos és nagyon széles kört érintő Linux-sérülékenységre (CVE-2015-7547) hívta fel a figyelmet a Google két biztonsági szakembere. Fermin J. Serna és Kevin Stadmeyer blogbejegyzése szerint a vállalat egyik mérnöke egy SSH klienssel kapcsolatban gyanított alacsony szintű memóriahozzáférési hibát (segfault) vizsgált, és az ennek kapcsán indított mélyebb elemzés derített fényt a rendellenes viselkedés valódi okára.

Kiderült, hogy a hiba nem az SSH kliensben, hanem a GNU C könyvtár (glibc) egyik komponensében, a kliensoldali névfeloldóban van: a getaddrinfo() függvény használata puffertúlcsorduláshoz vezethet, így egy megfelelően formázott DNS válasszal és az operációs rendszer egyéb védelmi mechanizmusainak kijátszásával távoli kódfuttatás érhető el.

A sérülékenység oka, hogy az alloca() függvény által a stackben a DNS válaszra befoglalt 2048 bájtnyi memóriaterületbe a válasz akkor is beírásra kerülhet, ha egyébként ennyibe nem férne bele – annak ellenére, hogy a nagyobb méret miatt korábban a feloldó már foglalt egy megfelelő területet a szabad memóriából. Ilyenkor elvileg a megfelelő “sorvezetők” (pointer, puffer- és válaszméret) is frissülnek, de a mérnökök szerint bizonyos körülmények között az átállás mégsem történik meg, és a névfeloldó a választ megpróbálja bepasszírozni az eredeti 2048 bájtos stack pufferbe. A szakemberek egy tesztelésre használható példakódot is közzétettek, de a fejlettebb, támadásra is használható változatot visszatartották a sérülékenység elterjedtségére és a könyvtár fontosságára hivatkozva.

Érdekesség, hogy a hibát a könyvtár karbantartói már tavaly július óta ismerték, és két Red Hat-es szoftvermérnök, Florian Weimer és Carlos O'Donell is elkezdett már dolgozni egy javításon a 2015-ös hibabejelentéstől függetlenül – az ügy érzékenysége miatt saját szakállra, mások bevonása nélkül. Most viszont egyesítették erőiket a Google szakembereivel, és elkészítették a javítást, ami várhatóan nagyon gyorsan bekerül az aktívan frissített disztribúciókba, egyedi újrafordítással pedig saját hatáskörben is felhasználható.

A szakemberek egyelőre megosztottak abban, hogy a glibc hibája pontosan mekkora problémát jelent. Elvben az olyan rendszerek és eszközök, amelyek a könyvtár sebezhető verzióit használják, támadási célpontok lehetnek, az azonban nem világos, hogy pontosan mekkora lehet az ilyen eszközök köre. A jellemző támadási felületet például a hálózati eszközök (például routerek) jelenthetik elvben, de ezek közül a tömegesen elterhedt otthoni/SOHO routerek nem használják a glibc-t, mivel a beágyazott rendszerekhez ez túl komplex könyvtár. Más, komolyabb eszközökben azonban jó eséllyel fut a glibc valamilyen verziója - a Cisco például rengeteg termékében használja a könyvtárat és jó eséllyel más gyártók is támaszkodnak rá.

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.