Este artículo del blog de Calif.io describe un experimento innovador: el uso de la herramienta de inteligencia artificial Codex de OpenAI para hackear un televisor Samsung. El objetivo no era encontrar una vulnerabilidad tradicional, sino demostrar la capacidad de Codex para escalar privilegios a nivel de root en un dispositivo embebido, dada una serie de condiciones específicas.
El experimento se realizó en un entorno controlado. A Codex se le proporcionó acceso a un shell dentro de la aplicación del navegador del televisor, una máquina de control para compilar código ARM y un conjunto de herramientas, y el código fuente del firmware KantS2 de Samsung. La clave fue que Codex no recibió una vulnerabilidad predefinida; en cambio, se le dio la libertad de explorar el sistema y descubrirla por sí mismo. La configuración incluía un 'memfd wrapper' para sortear las restricciones de ejecución de código de Samsung (UEP), permitiendo la ejecución de código compilado en memoria.
Codex iteró a través de un ciclo de inspección de código fuente, ejecución de comandos en el televisor a través de un shell, análisis de registros y construcción de herramientas cuando era necesario. El proceso se guió mediante prompts que definían el objetivo (escalar privilegios a root) y establecían restricciones (la vulnerabilidad debía existir en el código fuente, ser accesible desde el contexto del navegador y ser verificable en el dispositivo real).
Codex finalmente identificó una vulnerabilidad en los nodos de dispositivo ntk* (específicamente ntksys y ntkhdma), que son interfaces de kernel de Samsung que permiten a los procesos de usuario acceder a la memoria física. La vulnerabilidad radicaba en que estos nodos eran accesibles para usuarios no privilegiados y que el driver no validaba adecuadamente el rango de memoria física especificado por el usuario, permitiendo la manipulación de la memoria del kernel. Este descubrimiento permitió a Codex escalar privilegios a root sin necesidad de explotar directamente el código del kernel.
El artículo destaca una importante consideración de seguridad: la exposición de interfaces de gestión de memoria a procesos no privilegiados es un error de diseño grave. El incidente subraya el potencial de las herramientas de IA para automatizar la búsqueda de vulnerabilidades y la importancia de una auditoría de seguridad exhaustiva del código fuente, incluso en componentes considerados de bajo riesgo.
