
Informe técnico y PoC autenticado de reverse-shell para CVE-2026-96515, una vulnerabilidad de ejecución de comandos como root en el gestor de importación de diagnóstico BOA del router Netlink HG323RW.
Un usuario web limitado autenticado puede subir un script de shell a través del manejador de importación de diagnóstico del Netlink HG323RW y hacer que el proceso BOA con UID 0 lo ejecute. Se requieren autenticación y valores válidos de verificación/CSRF; este repositorio no afirma ejecución de código previa a la autenticación.
| Campo | Valor |
|---|---|
| CVE | CVE-2026-96515 |
| Producto | Router Netlink ICT HG323RW |
| Hardware afectado | V3.7 |
| Firmware afectado | 3.1.02-260228 (Netlinkver) |
| Componente | bin/boa |
| Endpoint | /boaform/formImportOMCIShell |
| Acceso requerido | Cuenta web limitada autenticada en la red adyacente/privada |
| Impacto demostrado | El contenido de shell subido se ejecuta como UID 0 |
| CWE | CWE-862 (Missing Authorization), CWE-434 (Unrestricted Upload of File with Dangerous Type) |
| CVSS | 8.6 Alto — CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| Firmware corregido | 3.1.02-260904 (reportado por CERT-In e inspeccionado de forma independiente; la verificación en tiempo de ejecución confirmó que tanto /boaform/formImportOMCIShell como /boaform/admin/formImportOMCIShell devuelven HTTP 404) |
| Reportero | Muhammed Safvan |
CERT-In publicó el registro el 24 de septiembre de 2026 como el aviso CIVN-2026-0473. Netlink enumera las descargas de firmware en su página de firmware.
La cuenta limitada predeterminada de fábrica se aprovisiona en /etc/config_default.xml, y BOA crea /var/boaUser.passwd a partir de los valores MIB configurados durante el arranque. Tras autenticarse como el usuario limitado, una solicitud puede enviar un campo multipart llamado binary a formImportOMCIShell. La evidencia del bin/boa evaluado identifica el destino /tmp/omcishell y el sumidero de ejecución /bin/sh /tmp/omcishell.
La transcripción del dispositivo autorizado proporcionada registra un shell con UID/GID reales, efectivos, de conjunto guardado y del sistema de archivos con valor cero. El código fuente C exacto y el historial de versiones no estaban disponibles, por lo que las afirmaciones sobre versiones afectadas se limitan intencionalmente a la imagen evaluada. Tanto el archivo evaluado como el archivo parcheado listado por el CNA se conservan en firmware/; su estructura, versiones incrustadas y sumas de verificación fueron verificadas, pero la regresión del exploit no se volvió a ejecutar durante este paso de empaquetado.
Lea REPORT.md para obtener el análisis completo, los requisitos previos, las limitaciones de la evidencia y las recomendaciones de remediación.
REPORT.md — informe técnico autocontenido.poc/ — PoC de reverse-shell autenticado en LAN privada y notas de uso.analysis/ — notas de análisis estático saneadas sobre aprovisionamiento de cuentas, enrutamiento y comportamiento de roles.binary/ — identificación acotada de BOA, cadenas y evidencia de hashes extraída de la imagen evaluada.firmware/ — archivos completos de firmware del proveedor vulnerable y parcheado, hashes y advertencias de actualización.runtime/ — metadatos de firmware saneados y procedencia de la prueba en tiempo de ejecución proporcionada.hashes/ — digests de los artefactos de origen y resultados de verificación.MANIFEST-SHA256.txt — digest de todos los demás archivos rastreados del repositorio.Los dos archivos completos de firmware se distribuyen sin árboles de trabajo extraídos. No se incluye ninguna sesión activa, token CSRF, identificador de dispositivo, dato de cliente, contraseña codificada exportada por separado ni credencial no pública. Se analiza el par de credenciales predeterminado de fábrica porque es relevante para la configuración afectada. La redistribución y el uso del firmware siguen sujetos a los términos del proveedor.
El PoC público sube una carga útil fija de reverse-shell basada en FIFO y proporciona un listener interactivo, por lo que los comandos introducidos tras la conexión se ejecutan en el router. Rechaza direcciones de destino y de callback públicas, solicita la contraseña de forma predeterminada y requiere una confirmación explícita EXECUTE a menos que el operador proporcione la anulación de automatización documentada. Se verificó su sintaxis, pero no se ejecutó durante esta actualización del repositorio. Úselo solo en un dispositivo que posea o para el que tenga autorización explícita de prueba.
Un vídeo de demostración proporcionado por el propietario se conservó fuera de este repositorio público porque muestra una ruta local y un contexto de escritorio específicos de la máquina del autor. El repositorio ahora incluye el código fuente correspondiente del PoC de reverse-shell; el hash de la grabación y un resumen conservador de las observaciones se conservan en runtime/video-observation.txt.