
CVE-2012-1823 - Inyección de Argumentos en PHP CGI y Ejecución Remota de Código (RCE)
Severidad: Crítica (CVSS 9.8)
CVE: CVE-2012-1823
Publicado: 11 de mayo de 2012
Software afectado: PHP ejecutándose en modo CGI (php-cgi)
Tipo de vulnerabilidad: Inyección de argumentos / Ejecución Remota de Código (RCE)
Vector de ataque: Red
Autenticación requerida: Ninguna
CVE-2012-1823 es una de las vulnerabilidades de Ejecución Remota de Código más significativas jamás descubiertas en PHP. La vulnerabilidad afecta a instalaciones de PHP configuradas para ejecutarse a través de la Interfaz Común de Puerta de Enlace (CGI), lo que permite a un atacante no autenticado ejecutar código PHP arbitrario de forma remota.
A diferencia de las vulnerabilidades que requieren fallos dentro de una aplicación web, este problema existe dentro del propio PHP cuando se despliega utilizando php-cgi. Debido a que la vulnerabilidad existe a nivel del intérprete, toda aplicación PHP alojada en un servidor afectado se vuelve vulnerable, independientemente de si la aplicación contiene defectos de codificación.
La vulnerabilidad se hizo muy conocida en 2012 debido a su simplicidad, fiabilidad y explotación generalizada en Internet. Incluso años después de su divulgación, los escaneos a nivel de Internet continúan identificando sistemas vulnerables, y la vulnerabilidad sigue incluida en marcos de explotación y herramientas de detección defensiva. :contentReference[oaicite:0]{index=0}
La vulnerabilidad existe dentro de la implementación CGI de PHP (php-cgi).
Normalmente, los parámetros de consulta HTTP están destinados a ser pasados a los scripts PHP como entrada del usuario.
Sin embargo, PHP procesa incorrectamente cadenas de consulta especialmente diseñadas que no contienen un signo igual (=).
En lugar de tratar la cadena de consulta puramente como datos de usuario, PHP interpreta erróneamente partes de ella como argumentos de línea de comandos pasados directamente al ejecutable de PHP.
Debido a que PHP soporta numerosos interruptores de línea de comandos (como -d), un atacante puede sobrescribir las opciones de configuración del runtime de PHP durante el procesamiento de la solicitud.
Esto permite al atacante:
La causa raíz es el manejo inadecuado de php_getopt() dentro de:
sapi/cgi/cgi_main.c
Específicamente, PHP no logró ignorar correctamente el análisis de línea de comandos al procesar cadenas de consulta maliciosas que carecen de un signo igual (=). :contentReference[oaicite:1]{index=1}
El ejecutable CGI acepta parámetros de línea de comandos.
Por ejemplo:
php-cgi -d allow_url_include=1
Normalmente, estos parámetros solo deberían originarse desde el sistema operativo.
En cambio, PHP permitió incorrectamente que las solicitudes HTTP inyectaran esos parámetros a través de URLs especialmente diseñadas.
El atacante podía, por tanto, manipular la configuración del runtime de PHP antes de que el script objetivo se ejecutara.
Esto transformó efectivamente una simple solicitud HTTP en una ejecución de línea de comandos contra php-cgi.
Las siguientes versiones de PHP son vulnerables:
| Versión | Estado |
|---|---|
| PHP < 5.3.12 | Vulnerable |
| PHP 5.4.x < 5.4.2 | Vulnerable |
Solo las instalaciones que utilizan modo CGI (php-cgi) están afectadas.
PHP ejecutándose como:
generalmente no están afectados por CVE-2012-1823 en sí. :contentReference[oaicite:2]{index=2}
Un atacante solo necesita:
La vulnerabilidad es totalmente explotable de forma remota.
El ataque típicamente sigue estas etapas:
Una vez obtenida la ejecución de código, los atacantes comúnmente:
Una explotación exitosa resulta en el compromiso total de la aplicación PHP.
Las consecuencias potenciales incluyen:
Si PHP se ejecuta con privilegios elevados, también puede ser posible el compromiso a nivel de sistema.
| Métrica | Valor |
|---|---|
| Puntuación Base | 9.8 |
| Severidad | Crítica |
| Vector de ataque | Red |
| Complejidad del ataque | Baja |
| Privilegios requeridos | Ninguno |
| Interacción del usuario | Ninguna |
| Confidencialidad | Alta |
| Integridad | Alta |
| Disponibilidad | Alta |
Varias características hicieron que CVE-2012-1823 fuera particularmente impactante:
Su combinación de facilidad de explotación e impacto severo condujo a extensos ataques en el mundo real y a su inclusión en el catálogo de Vulnerabilidades Explotadas Conocidas (KEV) de CISA. :contentReference[oaicite:4]{index=4}
Los administradores deben verificar:
Los indicadores incluyen:
Escáneres de seguridad como Nuclei, Nessus, OpenVAS y módulos de Metasploit pueden detectar configuraciones vulnerables. :contentReference[oaicite:5]{index=5}
Las mitigaciones recomendadas incluyen:
| Fecha | Evento |
|---|---|
| Mayo de 2012 | Vulnerabilidad divulgada públicamente |
| Mayo de 2012 | Parches de seguridad publicados |
| 2012 | Exploits públicos publicados |
| 2012 | Módulo de Metasploit publicado |
| Años siguientes | Explotación masiva en Internet observada |
| Presente | Continúa apareciendo en escaneos de vulnerabilidades y sistemas heredados |
Este repositorio está destinado exclusivamente a fines educativos, investigación de seguridad, análisis de vulnerabilidades y pruebas defensivas. Cualquier información contenida aquí solo debe utilizarse en sistemas para los cuales tenga autorización explícita. La explotación no autorizada de sistemas vulnerables es ilegal y poco ética.