Vulnerabilidad en constant-time-js revela fugas de caché en V8

Fuentes: V8 Runtime Side-Channel Vulnerability Exposed in constant-time-js

El desarrollador de la librería JavaScript constant-time-js ha publicado una corrección crítica tras descubrir que el motor de ejecución V8 introduce fugas de información a través de canales laterales. La vulnerabilidad, reportada por el estudiante de doctorado Yayu Wang, afecta a las funciones de selección condicional de la librería, que utilizan expresiones sin ramas para construir máscaras de selección. Aunque el código intenta ser constante en tiempo, el mecanismo ToBoolean de V8 y el manejo de los objetos 'true' y 'false' generan patrones de acceso a la caché dependientes de secretos, comprometiendo la seguridad del sistema.

El análisis técnico revela que la conversión de booleanos en V8 accede a direcciones de memoria específicas para los valores true y false, lo que permite a un atacante inferir el valor de la condición a través de trazas de ejecución. La librería, que no tenía dependencias externas en NPM, fue parcheada en septiembre de 2026. El autor ha solicitado un CVE a través de las advertencias de seguridad de GitHub para garantizar que los sistemas que utilicen esta librería reciban la actualización más reciente. Este incidente subraya la complejidad de la verificación de seguridad en entornos de ejecución modernos, donde las optimizaciones del compilador pueden socavar las garantías teóricas de tiempo constante.