PHP sérülékenységek

CH azonosító

CH-381

Felfedezés dátuma

2007.02.09.

Súlyosság

Közepes

Érintett rendszerek

PHP
PHP Group

Érintett verziók

PHP Group PHP 4.4.x, 5.1.x, 5.2.x

Összefoglaló

Számos sérülékenységet jelentettek a PHP-ban. Egyes sérülékenységek hatása ismeretlen, míg a többit kihasználva támadók érzékeny információkhoz juthatnak, megkerülhetnek bizonyos biztonsági korlátokat,szolgáltatás megtagadást okozhatnak vagy föltörhetik a sebezhető rendszert.

Leírás

Számos sérülékenységet jelentettek a PHP-ban. Egyes sérülékenységek hatása ismeretlen, míg a többit kihasználva támadók érzékeny információkhoz juthatnak, megkerülhetnek bizonyos biztonsági korlátokat,szolgáltatás megtagadást okozhatnak vagy föltörhetik a sebezhető rendszert.

  1. A „safe_mode” és „open_basedir” védelmi mechanizmusok megkerülhetők a session kiterjesztés alkalmazásával.
  2. A session kiterjesztés túlcsordulásos hibáit kihasználva számos túlcsordulásos hiba kihasználható.
  3. Pufffer túlcsordulásos hibák, néhány közülük verem túlcsordulás, vannak a „zip”, „imap”, és „sqlite” (PHP 5) kiterjesztésekben.
  4. Határhibák a „stream filter”-ekben kihasználhatók puffer túlcsordulás előidézésére.
  5. Egy egész túlcsordulásos hibát kihasználva az „str_replace()” függvényben, a memória lefoglalásakor, hibát lehet előidézni. Ez tetszőleges kód futtatását teszi lehetővé hosszú, megbízhatatlan forrásból származó stringek feldolgozásakor.
  6. Numerikus kulcsot tartalmazó, rosszindulató WDDX adatok importálásakor meghívva a „php_set_session_var()” függvényt véletlenszerű memória tartalomfedhető fel.
  7. A print() függvények egy segéd függvényének hibás 32 bites csonkítását kihasználva megváltoztatható a memória tartalma vagy formátum string hiba okozható 64 bites rendszereken.
  8. A „mail()”, „ibase_add_user()”, „ibase_delete_user()”, és „ibase_modify_user()” függvények határhibáit ki lehet használni puffer túlcsorduláshoz.
  9. Az „odbc_result_all()” függvény formátum string hibáját kihasználva tetszőleges kód futtatható, amennyiben a támadó irányítást szerzett az használt adatbázis tábláinak tartalma felett.
  10. Az „imap_mail_compose()” függvény egy hibáját kihasználva verem túlcsordulás idézhető elő , ami tetszőleges kód futtatását teszi lehetővé, ha a függvényt megbízhatatlan forrásból származó bemenetet használnak egy új MIME üzenet létrehozásához.
  11. 64 bites rendszereken a „zend_hash_init()” függvény hibáját kihasználva szolgáltatás megtagadás idézhető elő a processzor leterhelésével, a script automatikus leállításáig, megbízhatatlan forrásból származó adat feldolgozásakor előidézett végtelen ciklussal.
  12. Az „unserialize()” függvény ZVAL struktúrák kezelésekor föllépő hibáját kihasználva megváltoztatható a memória tartalma és tetszőleges kód futtatható.
  13. A munkamenet sorosítás kezelő „php_binary” határhibáját kihasználva felfedhető a futási időben dinamikusan kezelt memória tartalma.
  14. A megosztott memóriát kezelő (shmop) függvények erőforrás azonosítóinak ellenőrzésében lévő hibákat kihasználva tetszőleges memória tartalom írható vagy olvasható.
  15. A PHP 5 „zip” kiterjesztésének határhibáit kihasználva verem túlcsordulás idézhető elő, ha túl hosszú stringet adnak át a „zip:” URL burkolónak. Ez összefügghet a 3. sebezhetőséggel.
  16. Ha az ext/filter „FILTER_SANITIZE_STRING” szűrőjét a „FILTER_FLAG_STRIP_LOW ” jelzővel használják, megkerülhető a szűrés bizonyos ASCII karakterek nyitó zárójel után helyezésével. Ez pl. cross-site scripting támadást tesz lehetővé.
  17. Az FDF (ext/fdf) kiterjesztés nem hívja meg jól a bemenet szűrő hookokat. Amennyiben a PHP-t FDF támogatással fordították, ezt ki lehet használni az ext/filter bemenet szűrés megkerülésére application/vnd.fdf formátumban küldött POST adatokkal.
  18. Az ext/filter „FILTER_VALIDATE_INT” szűrőjében található puffer alulcsordulást kihasználva tetszőleges kód futtatható, de ehhez big-endiant használó rendszerre lehet szükség.
  19. A PHP 5.2.0 „header()” függvény „white space” (szóköz és vezérlő) karakterek levágásakor jelentkező hibáját kihasználva megváltoztatható a memória tartalma és tetszőleges kód futtatható big-endiant használó rendszereken.
  20. A session kiterjesztés hash táblázat kezelésének hibáját kihasználva kicserélhető a munkamenet változóinak hash táblázata és tetszőleges kód futtatható.
  21. A munkamenet adatok deszerializálásakor föllépő hibát kihasználva globális változók (pl. a „_SESSION” tömb) írhatók felü, ha a „register_globals” engedélyezve van.
  22. A PHP 4 „zip_read_entry()” függvényének egész túlcsordulásos hibáját kihasználva halom túlcsordulás idézhető elő, „-1”-es hossz paraméter küldésével. Sikeres kiaknázás tetszőleges kód futtatását teszi lehetővé.
  23. A PHP 5 „php_stream_filter_create()” függvény „off-by-one” hibáját kihasználva túlcsordulás okozható pl. egy „php://filter” URL segítségével.
  24. A „msg_receive()” függvény egy egész túlcsordulásos hibáját kihasználva halom túlcsordulás okozható a „maxsize” paraméterrel. A jelentések szerint a Linuxon futó PHP nem érintett, de pl. a FreeBSD-n futó igen.
  25. A PHP 5.2.0 Zend Memory Manager egy hibáját jelentették egy hossz méret érték hozzárendelésekor egy előjeles long típusú változóhoz. Ezt kihasnzálva puffer túlcsordulás okozható pl. a PHP HTTP SOAP klienssel.

Egyéb hibákat is jelentettek, amiknek lehetnek biztonsági következményei.

Figyelem: Egyes sérülékenységeket távolról is ki lehet használni.

Megoldás

Frissítsen a legújabb verzióra

Legfrissebb sérülékenységek
CVE-2024-20358 – Cisco ASA és FTD sérülékenysége
CVE-2024-20359 – Cisco ASA és FTD sérülékenysége
CVE-2024-20353 – Cisco ASA és FTD sérülékenysége
CVE-2024-31857 – WordPress Forminator plugin sérülékenysége
CVE-2024-31077 – WordPress Forminator plugin sérülékenysége
CVE-2024-28890 – WordPress Forminator plugin sérülékenysége
CVE-2024-20295 – Cisco IMC sérülékenysége
CVE-2024-3400 – Palo Alto Networks PAN-OS sérülékenysége
CVE-2024-3566 – Windows CreateProcess sérülékenysége
CVE-2024-22423 – yt-dlp sérülékenysége
Tovább a sérülékenységekhez »