Csomag: PHP3, PHP4
Csomag: safe_mode figyelmen kívül hagyása, CRLF beszúrása
Probléma típus: távoli
Debian-specifikus: nem
CVE ID: CAN-2002-0985 CAN-2002-0986
BugTraq ID: 5681
Wojciech Purczynski rájött, hogy a scriptek meg tudják azt tenni, hogy tetszőleges szöveget adjanak át a sendmailnek a parancssor kiterjesztésével, amikor PHP-n keresztül küld levelet, még akkor is, amikor a safe_mode be van kapcsolva. Az 5. argmuentum átadásának tiltottnak kellene leni, amikor a PHP safe_mode -ra van konfigurálva, és ez áll is az újabb PHPkre, illetve az alábbi javított verziókra. Ez a hiba egyébként nem érinti a PHP3-at.Wojciech Purczynski találta ki azt is, hogy tetszőleges ASCII vezérlőkaraktereket lehet megadni a mail() függvény argumentumainak. Ha a mail () argumentumait a felhasználó bemenetéről veszi, megadja a felhasználónak a lehetőséget, hogy megváltoztassa a levél tartalmát, ideértve a levél fejlécét is.
Ulf Harnhammar fedezte fel, hogy a file() és fopen() hívások sebezhetők egy CRLF beszúrásával. Egy támadó felhasználhatja arra, hogy kikerüljön bizonyos megszorításokat és tetszőleges szöveget adjon az állítólagos HTTP kérésnek, ami így keresztül fog menni.
Egyébként az csak akkor történik meg ha valamit továbbíttunk ezeknek a függvényeknek ami nem lehet egy érvényes fájlnév sem egy érvényes URL. Bármilyen sztring ami vezérlőkaraktereket tartalmaz nem lehet érvényes URL. Mielőtt egy stringet átadunk egy függvénynek, aminek url-nek kéne lennie, előtte azt az urlencode()-al el kell kódolni.
Három problémát azonosítottak a PHP-ben:
- A mail() függvény megenged tetszőleges email fejléc megadását, ha a fogadó címe vagy a levél 'subject' mezője CR/LF karaktereket tartalmaz.
- A mail() függvény nem tiltja le megfelelőan a tetszőleges parancssori argumentumok átadását a sendmailnek, amikor a PHP Safe Mód-ban fut.
- Az fopen() függvény, amikor egy URL-t fogadunk, megengedheti a kérés manipulációját ha az URL CR/LF karaktert tartalmaz. Például ha fejléceket lehet adni egy HTTP kéréshez.
Ezeket a problémákat a 3.0.18-23.1woody1 verzió javítja a PHP3 esetén és a 4.1.2-5 verzió a PHP4 esetén az aktuális stabil terjesztésben(woody), valamint a 3.0.18-0potato1.2 verzó a PHP3 esetén és a 4.0.3pl1-0potato4 verzió a PHP4 esetén a régi stabil terjesztésben (potato), és a 3.0.18-23.2 verzió a PHP3 esetén és a 4.2.3-3 verzió a PHP4 esetén az instabil terjesztésben (sid).
Javasoljuk a PHP csomagok frissítését.
Martin Schultze levele a debian-security-announce listán.
A frissítésrõl szóló FAQ-nk.