El passat 20 d’octubre s’ha convertit en una nova data important que no es pot oblidar. El projecte PHP ha anunciat una propera actualització de seguretat que té com a objectiu abordar dues vulnerabilitats crítiques a PHP, correccions que es van dur a terme el passat 21 d’octubre de 2026 a les 13:30 UTC.
Aquestes dues correccions es van presentar a les versions 8.5.12, 8.4.27, 8.3.36 i 8.2.35. Totes aquestes vulnerabilitats permeten que s’executi codi de manera remota sense autenticació en servidors web vulnerables. Com que ja existeixen proves de concepte (PoC) públiques i detalls tècnics circulant per la comunitat, és possible que l’explotació massiva per part de ciberdelinqüents sigui elevada.
Detalls de cadascuna de les vulnerabilitats
La vulnerabilitat CVE-2026-109618 (GHSA-w8hw-w9fx-j79w) té una qualificació CVSS 9.2. PHP utilitza la funció longjmp() per avortar peticions quan se supera el límit de memòria configurat (memory_limit).
El problema es produeix quan aquesta interrupció es duu a terme mentre PHP processa una estructura de dades incompleta; per exemple, mentre s’està pujant un formulari, el procés de neteja posterior intenta alliberar punters de memòria no inicialitzats. Amb aquesta vulnerabilitat, un atacant podria manipular la memòria al seu gust per forçar l’execució de codi.
La vulnerabilitat CVE-2026-109619, per la seva banda, permet que informació o estats interns d’una petició subsisteixin a la memòria després que s’hagi produït un error fatal. Això pot passar fins i tot després que aquesta memòria hagi estat alliberada. Quan aquest mateix procés atén una petició posterior, és possible accedir a la memòria obsoleta abans que es reinicialitzin les variables, permetent l’execució remota de codi.
Quins productes s’han vist afectats?
- Versions de PHP 8.5 anteriors a la 8.5.12
- Versions de PHP 8.4 anteriors a la 8.4.27
- Versions de PHP 8.3 anteriors a la 8.3.36
- Versions de PHP 8.2 anteriors a la 8.2.35
- Branques en fi de vida (PHP 8.1 i anteriors), que ja no reben actualitzacions del projecte PHP
Recomanacions a dur a terme
El primer i més important és actualitzar totes les instal·lacions de PHP que s’hagin vist afectades com més aviat millor a PHP 8.5.12, 8.4.27, 8.3.36 o 8.2.35.
Per als paquets de distribució de Linux i els proveïdors de suport a llarg termini que van rebre els pegats amb antelació, contacteu amb el vostre proveïdor per obtenir aquests paquets actualitzats.
En el cas de les versions obsoletes, les de PHP 8.1 i anteriors, algunes distribucions i proveïdors de suport a llarg termini ofereixen correccions retroportades. En aquest cas, us recomanem que contacteu amb el vostre proveïdor o actualitzeu a una versió compatible.
Es tracta d’un problema greu, per la qual cosa l’equip de seguretat de PHP ha publicat correccions retroportades mínimes per a PHP 7.4, 8.0 i 8.1 per a aquelles organitzacions que compilen des del codi font o per a aquelles que no disposen d’un proveïdor LTS.
Per als usuaris de rpms.remirepo.net no hi haurà actualitzacions el dia de llançament. El més recomanable en aquest cas és que els usuaris optin pels paquets de distribució o que compilin directament des del codi font.
Sempre que no sigui possible aplicar el pegat de manera immediata, es recomana a les organitzacions que considerin la possibilitat d’aïllar els recursos connectats a internet de les xarxes públiques fins que es pugui verificar una solució.
Mitigacions temporals (Si no es pot actualitzar immediatament)
En el cas que no es pugui actualitzar de manera immediata, amb aquestes mitigacions es redueix la superfície d’exposició davant vectors coneguts. Aquestes mitigacions no substitueixen en cap moment la instal·lació del pegat oficial.
Per mitigar CVE-2026-109618 (Corrupció per OOM)
Desactiveu primer memory_limit a la configuració del servidor
Establiu memory_limit=-1 mitjançant php_admin_value als pools de FPM o a la configuració d’Apache per evitar que sigui l’aplicació qui controli la fallada. Assegureu-vos que cap aplicació o directori sobrescrigui aquest paràmetre.
Restrigiu les mides de pujada
Per fer-ho, configureu post_max_size a 8MB o a 32MB si es requereixen descàrregues, i manteniu upload_max_filesize per sota d’aquest valor.
Límits a nivell de proxy/WAF
Establiu límits al servidor web o al WAF per al recompte de camps, capçaleres, parts multipart i profunditat de peticions HTTP.
Per mitigar CVE-2026-109619 (Estat global persistent)
Desactiveu el progrés de pujada de sessions
Per fer-ho, establiu session.upload_progress.enabled=0 a php.ini o a nivell de servidor (mai mitjançant ini_set() ni .user.ini) i reinicieu tots els workers.
Desactiveu traces a PHP 8.5
A PHP heu de configurar fatal_error_backtraces=0 i tot seguit reiniciar tots els processos.
Elimineu configuracions en desús
Per acabar, corregiu o elimineu paràmetres obsolets per petició que generin advertiments o diagnòstics abans de la inicialització de sessió.
