Udajne kriticka zranitelnost mod_php
Jozef Drahovsky (for freebsd)
freebsdcz3 at jozef.drahovsky.sk
Thu Oct 22 18:45:07 CEST 2026
Dňa 22.10.2026 o 14:22 Jozef Drahovsky (for freebsd) napísal(a):
>
> Dňa 22.10.2026 o 12:20 Dan Lukes napísal(a):
>> On 21.10.2026 21:50, Jozef Drahovsky (for freebsd) wrote:
>>> má kritickú zraniteľnosť, ktorá sa prejaví pri špecifických
>>> podmienkach keď prvý dotaz spraví pretečenie pamäte a druhý spustí
>>> kód z toho čo pretieklo. Ak som to správne pochopil.
>>
>> Nektere zdroje to zhruba tak popisuji. A nekteri tvrdi, ze exploit
>> videli funkcni, jini tvrdi, ze se funkcnost toho udajne funkcniho
>> exploitu zreprodukovat nepodarilo.
>>
>> Na muj vkus trochu moc zmatku. Skutecnou nebezpecnost toho exploitu
>> zatim stale povazuji za neobjasnenou.
Pre informáciu.
Nájdené zmeny v kóde zodpovedajú tomu čo sa propaguje, ale na využite
doterajšej chyby treba okrem iného aj veľa správnej vesmírnej konštalácie.
Keďže mod_php obsahuje opravené jadro Zend, tak dopad môže byť širší ako
len na Apache.
Zend/zend_execute_API.c pribudlo pri ukončovaní požiadavky:
+ EG(record_errors) = false;
+ EG(num_errors) = 0;
+ EG(errors) = NULL;
+ EG(error_handling) = EH_NORMAL;
+ EG(exception) = NULL;
main/main.c sa po uvoľnení jednotlivých vstupných globálnych premenných
dopĺňa označenie, že už neobsahujú platnú hodnotu:
zval_ptr_dtor(&PG(http_globals)[i]);
+ /* May be accessed before php_request_startup() */
+ ZVAL_UNDEF(&PG(http_globals)[i]);
V Zend/zend_alloc.c bola odstránená pôvodná cesta okamžitého prerušenia:
- zend_bailout();
- exit(1);
Zaznamená čakajúcu chybu pamäte a nastaví prerušenie:
EG(delayed_oom).state = ZEND_OOM_STATE_PENDING;
zend_atomic_bool_store_ex(&EG(vm_interrupt), true);
Pre tvrdý pamäťový limit pribudla samostatná funkcia
zend_mm_hard_limit_error(), ktorá končí:
_exit(137);
Jozef
More information about the Users-l
mailing list