CVE-2024-4577: Inyección de argumentos PHP en Windows

CVE-2024-4577: Injecció d'arguments PHP al Windows

Celia Catalán


El passat 6 de juny, Orange Tsai va revelar una nova vulnerabilitat que afectava PHP, tenint abast sobre totes les versions de PHP per a Windows (PHP en mode CGI en particular en idiomes: xinès i japonès), inclusivament en instal·lacions per defecte als servidors XAMPP. 

L'arrel del problema rau en un mal processament de caràcters per part del motor CGI (semblant a la vulnerabilitat de fa 12 anys CVE-2012-1823). Aquest motor interpreta (0xAD) i descodifica com un “guió suau”, el qual, PHP convertirà en un “guió real” gràcies a la funció de mapeig “best fit”, permetent així que un agent maliciós s'aprofiti per executar codi arbitrari 

Versions afectades 

Aquesta vulnerabilitat ha estat qualificada segons les mètriques del CVSS 3.1 com a 9.8 crítica segons NIST, i les versions afectades són: 

  • PHP 8.3 <8.3.8
  • PHP 8.2 < 8.2.20
  • PHP 8.1 <8.1.29

Explotació 

Per a l'explotació d'aquesta vulnerabilitat calen certes característiques a la màquina víctima: 

  • El programari PHP ha d'estar configurat en mode CGI. 
  • És possible l'explotació si els binaris php.exe o php-cgi.exe estan exposats (totes les instal·lacions per defecte a XAMPP per a Windows). 
  • El sistema operatiu ha de ser Windows. 

Com que aquesta vulnerabilitat és molt semblant a la ja esmentada CVE-2012-1823, se'n poden utilitzar tècniques d'explotació. Per això, segons aquestes tècniques, per traduir la injecció a RCE, cal intentar injectar els arguments següents: 


Això permetrà l'entrada del cos de la sol·licitud HTTP i la processarà usant PHP. Es va crear un exemple de petició afegint el “guió suau” en lloc del “guió real”, i al cos de la petició es va afegir un codi php que permetia veure la pàgina phpinfo, demostrant que es va aconseguir el RCE. 



Com es poden veure a les captures, s'ha aconseguit executar codi mitjançant la injecció d'arguments a la petició. Això suposa un problema greu perquè un agent maliciós podria utilitzar aquesta vulnerabilitat per controlar qualsevol màquina afectada per aquest CVE, afectant la seva confidencialitat, integritat i disponibilitat.

Identificació i mitigació de la vulnerabilitat 

Per identificar la vulnerabilitat en els sistemes, es pot fer mitjançant la inspecció de la versió de PHP. 

Per mitigar la vulnerabilitat principalment cal actualitzar el programari PHP a les noves versions aplicades: 

  • 8.3.8 
  • 8.2.20 
  • 8.1.29 

És molt important aplicar l'actualització més recent, ja que els agents maliciosos estan usant actualment el rasomware TellYouThePass per explotar-lo de manera activa. 


Javier Muñoz, Analista de Ciberseguretat a Zerolynx

Tornar al bloc

Deixa un comentari

Tingueu en compte que els comentaris s'han d'aprovar abans que es publiquin.