A sérstandard C könyvtárában, a Glibc-ben sebezhetőséget (CVE-2024-2961) fedeztek fel, amely puffertúlcsorduláshoz vezet, amikor a speciálisan formázott ISO-2022-CN-EXT kódolású karakterláncokat alakítják át az iconv() függvénnyel. A problémát felfedező kutató a május 10-i OffensiveCon konferencián számol be, amelynek beharangozójában említést nyer, hogy a sebezhetőség kihasználható PHP nyelvű alkalmazásokon keresztül. Állításuk szerint a probléma az egész PHP ökoszisztémát és egyes alkalmazásokat érint.
Az UCS4 kódolású karakterláncok átalakításakor az RFC 1922 követelményeinek megfelelően a könyvtár bizonyos escape karaktereket ad hozzá, amelyek kiemelik azokat a részleteket a karakterláncban, ahol a kódolást megváltoztatták. A sebezhetőség a belső pufferek határának helytelen ellenőrzéséből fakad az iconv() függvényben, ami legfeljebb 4 bájt puffertúlcsordulást okozhat. A puffertúlcsordulás során bizonyos fix értékek, például ‘$+I’, ‘$+J’, ‘$+K’, ‘$+L’, ‘$+M’ és ‘$*H’ írhatók a pufferen kívülre. Bár a hasonló sebezhetőség kód végrehajtásához való kihasználása valószínűtlennek tűnik, a probléma felfedezője szerint elegendő volt néhány prototípus exploit elkészítésére távoli támadásokhoz PHP alkalmazásokkal szemben, amelyek kód végrehajtásához vezetnek.
A sebezhetőség 2000 óta fennáll, és a Glibc 2.40-es verziójában van javítva, amely jelenleg fejlesztés alatt áll. A javítás a Glibc 2.32 és 2.39 közötti kiadásokhoz készült javítócsomagok formájában is elérhető. A disztribúciókban a sebezhetőség javítását a következő oldalakon lehet nyomon követni: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.
Forrás: opennet.ru
