CVE-2026-0915: 1996 óta meglévő biztonsági hibát javított a GNU C Library

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

Meglepő, de igaz: a GNU C Library (glibc) egyik biztonsági hibája közel harminc éven át rejtve maradt, és csak most kapott javítást. A CVE-2026-0915 az 1996-ban bevezetett kódhoz kapcsolódik, és bár a kockázat korlátozott, a felfedezés jól mutatja, milyen mély rétegeiben él tovább a modern Linux rendszereknek az örökölt kód.

Harminc éve észrevétlen információszivárgás

A CVE-2026-0915 pénteken került nyilvánosságra, mint a GNU C Library-t (glibc) érintő sebezhetőség. A hiba a getnetbyaddr és getnetbyaddr_r függvényeket érinti, amelyek bizonyos esetekben veremmemória-tartalmat (stack contents) szivárogtathatnak ki a DNS feloldó (resolver) felé.

Az oss-security levelezőlistán közzétett összefoglaló szerint a probléma akkor jelentkezik, ha ezek a függvények nulla hálózati értékkel (network value = 0) kerülnek meghívásra. Ez egy ritka használati eset, és a kiszivárgó adatok köre is korlátozott: legfeljebb a verem szomszédos területeiről kerülhetnek ki bájtok.

Korlátozott hatás, de nem elhanyagolható kockázat

A fejlesztők hangsúlyozzák, hogy:

  • a sebezhetőség ritkán kihasználható,
  • az adatvesztés mértéke erősen limitált,
  • ugyanakkor segíthet ASLR (Address Space Layout Randomization) megkerülésében, ami más támadási láncokban már értékes információ lehet.

A meglepő inkább az, hogy ez az állapot 1996 júniusa óta létezett, és egyszerűen azért maradt rejtve, mert a nulla hálózati érték esete soha nem volt tesztelve ebben a kódrészben.

Javítás a glibc DNS alrendszerében

A hiba az NSS DNS backendben található. A nullás hálózati érték esetén a DNS lekérdezés korábban nem inicializált veremadatokból épült fel. A most bekerült javítás hatására:

  • ilyen esetben a glibc alapértelmezett, biztonságos DNS lekérdezést hoz létre,
  • megszűnik a veremmemória véletlenszerű kiszivárgásának lehetősége.

A javítás már elérhető a glibc.git tárolóban, egy friss commit formájában.

Nem ez volt az egyetlen friss glibc-sebezhetőség

Ugyanezen a héten egy másik hiba is napvilágot látott, CVE-2026-0861 azonosítóval. Ez a probléma a glibc memalign függvényeit érinti: túl nagy igazítási érték (alignment) megadásakor egész túlcsordulás (integer overflow) léphet fel, ami végső soron heap memória-sérüléshez vezethet.

Ez a hiba „csupán” 2019 óta volt jelen, és szintén javításra került a glibc aktuális fejlesztői ágában.

Mikor érkeznek a javítások a disztribúciókba?

A következő hivatalos GNU C Library kiadás, a glibc 2.43, várhatóan 2026 február elején jelenik meg. A nagyobb disztribúciók – különösen a rolling release rendszerek – ezt követően viszonylag gyorsan átvehetik a javításokat, míg az LTS kiadások backportolt frissítésekre támaszkodnak majd.

Ez az eset ismét emlékeztet arra, hogy még a legalapvetőbb, évtizedek óta használt rendszerszintű könyvtárakban is rejtőzhetnek meglepő hibák – és arra is, hogy a folyamatos auditálásnak és karbantartásnak továbbra sincs alternatívája. Az újdonságok megtalálhatóak a kiadási megjegyzésben.

Szómagyarázat

  • GNU C Library (glibc): A GNU projekt szabványos C programkönyvtára, amely a Linux rendszerek egyik legfontosabb alapkomponense. Gyakorlatilag minden felhasználói program – közvetlenül vagy közvetve – ezt használja alapvető műveletekhez (memóriakezelés, fájlműveletek, hálózat, DNS, stb.).
  • CVE (Common Vulnerabilities and Exposures): Nemzetközi azonosítórendszer a nyilvánosan dokumentált biztonsági sérülékenységekhez. Egy CVE-azonosító (például CVE-2026-0915) egy konkrét hibára mutat, amelyről részletes leírás és javítás érhető el.
  • getnetbyaddr / getnetbyaddr_r: A glibc régi, POSIX-kompatibilis hálózati függvényei, amelyek egy hálózati címhez tartozó információkat kérnek le. A _r végződésű változat újrabelépésbiztos (reentrant), vagyis több szálból is biztonságosan hívható.
  • Verem (stack): A program futása közben használt memória egyik területe, ahol a függvényhívásokhoz kapcsolódó ideiglenes adatok, változók és visszatérési címek találhatók. Tartalma normál esetben nem kerülhet ki a program hatóköréből.
  • Veremmemória-szivárgás (stack memory leak): Olyan programhiba, amikor a verem egyes, nem inicializált vagy védett részei külső fél számára is hozzáférhetővé válnak. Ez érzékeny információk kiszivárgásához vezethet.
  • DNS feloldó (resolver): Az a szoftverkomponens, amely a domainneveket (például example.com) IP-címekké alakítja. A glibc saját DNS feloldó alrendszert tartalmaz, amely az NSS-en keresztül működik.
  • NSS (Name Service Switch): A glibc egyik alrendszere, amely eldönti, hogy a rendszer különféle névfeloldási és azonosítási feladatokat (DNS, /etc/hosts, LDAP stb.) milyen forrásból végezzen el.
  • Nem inicializált memória: Olyan memóriaterület, amelynek tartalma nincs előre meghatározva. Ha egy program ezt az adatot felhasználja vagy továbbítja, az véletlenszerű, korábbi adatok kiszivárgásához vezethet.
  • ASLR (Address Space Layout Randomization): Biztonsági technika, amely véletlenszerűsíti a program memóriacím-térképét, megnehezítve a támadók dolgát. Még kis mennyiségű memóriaszivárgás is segíthet ennek részleges megkerülésében.
  • Oss-security levelezőlista: Nyílt forrású projektek biztonsági hibáinak nyilvános bejelentésére szolgáló szakmai levelezőlista, ahol a fejlesztők és disztribúciók karbantartói egyeztetnek.
  • DNS backend: Az NSS azon része, amely kifejezetten a DNS-alapú névfeloldásért felel. A hiba ebben a komponensben található.
  • Commit: Egy verziókezelő rendszerben (például Git) rögzített változtatáscsomag, amely pontosan dokumentálja, milyen módosítás történt a forráskódban.
  • memalign: Olyan memóriafoglaló függvény, amely a lefoglalt memória címét adott igazításhoz (alignment) igazítja. Speciális, alacsony szintű használatra szolgál.
  • Igazítás (alignment): A memória címének illesztése bizonyos byte-határokhoz (például 16 vagy 64 byte), ami teljesítmény- vagy hardverkövetelmény lehet.
  • Egész túlcsordulás (integer overflow): Olyan hiba, amikor egy egész szám nagyobb értéket kap, mint amit a típusa tárolni képes, és „átfordul”. Ez gyakran vezet biztonsági problémákhoz.
  • Heap memória: Dinamikusan lefoglalt memória-terület, amelyet a program futás közben kezel. Sérülése súlyos stabilitási vagy biztonsági hibákat okozhat.
  • Rolling release disztribúció: Olyan Linux disztribúció, amely folyamatosan frissül (például Arch Linux), nem nagy, ritka verzióugrásokkal.
  • LTS (Long Term Support): Hosszú távon támogatott kiadás, amely elsősorban stabilitásra törekszik, és a javításokat gyakran visszaportolják a régebbi kódbázisba.
  • Backportolás: Egy újabb verzióban elkészült javítás átemelése egy régebbi, még támogatott szoftververzióba.