
Prueba de concepto para CVE-2026-4480, una vulnerabilidad de inyección de comandos en el nombre del trabajo de impresión de Samba. Demuestra la explotación mediante nombres de trabajos de impresión maliciosos e incluye orientación sobre detección y mitigación.
CVE-2026-4480 es una vulnerabilidad de inyección de comandos que afecta a ciertas configuraciones de impresión de Samba que utilizan comandos de impresión externos.
La vulnerabilidad existe porque Samba inserta metadatos del trabajo de impresión controlados por el usuario en un comando de shell sin escapar adecuadamente los metacaracteres del shell.
Bajo configuraciones específicas, un atacante puede proporcionar un nombre de trabajo de impresión malicioso que provoca la ejecución de comandos arbitrarios en el servidor.
El problema es particularmente peligroso porque algunos recursos compartidos de impresión permiten el acceso de invitados, lo que permite la explotación sin autenticación.
Samba admite varios backends de impresión. Una opción heredada, comúnmente conocida como impresión estilo sysv, ejecuta un comando externo cada vez que se completa un trabajo de impresión.
Los administradores pueden configurar comandos utilizando macros de sustitución como:
print command = /usr/local/bin/print-helper %s %J
Donde:
%s → Ruta al archivo de spool%J → Nombre del trabajo de impresión suministrado por el clienteAntes de la corrección, el valor %J se sometía a una sanitización mínima antes de insertarse en un comando ejecutado a través del shell del sistema.
Debido a que los metacaracteres del shell permanecían intactos, los nombres de trabajo especialmente diseñados podían alterar el flujo de comandos previsto y ejecutar instrucciones controladas por el atacante.
Un ataque típico consta de cuatro etapas:
Si el comando de impresión hace referencia a %J, la carga útil del atacante se convierte en parte del comando del shell y se ejecuta con los permisos del proceso de impresión de Samba.
No todas las instalaciones de Samba son vulnerables.
Generalmente, deben cumplirse las siguientes condiciones:
%J.Las implementaciones modernas que utilizan impresión basada en CUPS no exponen esta ruta de ataque porque los trabajos se pasan a través de la API de CUPS en lugar de un comando de shell.
Una explotación exitosa puede permitir a un atacante:
La gravedad depende en gran medida de los permisos del proceso de impresión y de la configuración del sistema circundante.
Las versiones afectadas incluyen versiones anteriores a:
Los sistemas que utilizan versiones posteriores no se ven afectados por este problema.
Las mitigaciones recomendadas incluyen:
%J de los comandos de impresión si no es necesario.printing = cups cuando sea posible.Los defensores deben investigar:
smbd generando intérpretes de shell inesperadossh
bash
python
perl
nc
curl
wget
Monitorear la creación de procesos desde el servicio de Samba puede ayudar a identificar intentos de explotación.
Este repositorio está destinado únicamente para investigación de seguridad educativa y autorizada.
No utilice este código contra sistemas, redes o servicios sin el permiso explícito del propietario. El acceso no autorizado a sistemas informáticos es ilegal y poco ético.
Realice siempre las pruebas en entornos de laboratorio aislados o plataformas específicamente diseñadas para la formación en seguridad.