Vulnerabilidad CVE-2020-11023

Vulnerabilidad CVE-2020-11023

Publicado: 16/12/2025

Escrito por: Nadine Rozell

¿Qué es la vulnerabilidad CVE-2020-11023?

CVE-2020-11023 es una vulnerabilidad de secuencias de comandos en sitios cruzados (XSS) basada en el DOM, presente en la función htmlPrefilter de jQuery. En términos simples, esta función, que se supone debe preparar el HTML para insertarlo en el documento, puede ser engañada para ejecutar código malicioso. Los atacantes pueden aprovechar esto creando HTML que, al ser procesado por una versión vulnerable de jQuery, ejecuta un script malicioso en el navegador del usuario. Este es un problema clásico de XSS con una enorme superficie de ataque debido a la omnipresencia de jQuery.

¿Cuándo se descubrió?

La vulnerabilidad se divulgó el 28 de mayo de 2020. El equipo de jQuery lanzó parches para resolver el problema, pero como muchos sitios web funcionan con versiones antiguas de la librería, bajo un esquema de "configúralo y olvídalo", la vulnerabilidad sigue siendo una amenaza persistente en todo internet.

Productos y versiones afectados

Producto

Versiones afectadas

Versión corregida

jQuery

< 3.5.0

3.5.0 y posteriores

Descripción técnica de CVE-2020-11023

La vulnerabilidad existe en la forma en que la función htmlPrefilter de jQuery maneja las etiquetas HTML autocontenidas. Antes de la versión 3.5.0, la función usaba una expresión regular que podía evadirse. Un atacante puede pasar una cadena que contenga un payload HTML manipulado (por ejemplo, <img src=x onerror=alert(1)>) a una función como .html(). La función htmlPrefilter de jQuery no lograba sanear correctamente esta entrada, lo que hacía que el navegador ejecutara el script malicioso contenido en el atributo onerror. Este script se ejecuta con los mismos permisos que el propio sitio, lo que le permite al atacante robar cookies, tokens de sesión o manipular el contenido de la página.

Tácticas, técnicas y procedimientos (TTPs)

Un atacante por lo general explota CVE-2020-11023 engañando a un usuario para que haga clic en un enlace malicioso, o inyectando el payload en una parte del sitio web que refleja la entrada del usuario, como una barra de búsqueda o una sección de comentarios. Una vez que el navegador de la víctima carga el HTML manipulado, el payload de XSS se ejecuta. Los atacantes usan esto para robar información confidencial (como credenciales de inicio de sesión almacenadas en cookies), desfigurar sitios web o redirigir a los usuarios a páginas de phishing.

Indicadores de compromiso

Detectar XSS basado en el DOM puede ser complicado porque el payload a menudo no llega al servidor. Los indicadores son principalmente del lado del cliente. Busca scripts sospechosos que se ejecuten en la consola de desarrollador del navegador. Los administradores de sitios web deben auditar sus aplicaciones en busca de versiones desactualizadas de jQuery. Las herramientas de escaneo de seguridad, tanto estáticas (SAST) como dinámicas (DAST), pueden identificar el uso de versiones vulnerables de la librería y probar fallas de XSS en los campos de entrada proporcionados por el usuario.

Pruebas de concepto y exploits conocidos

Existen exploits de prueba de concepto ampliamente disponibles y fáciles de ejecutar para esta vulnerabilidad. Una prueba de concepto básica consiste en pasar una cadena como

¿Cómo detectar la vulnerabilidad CVE-2020-11023?

La detección empieza por identificar qué versión de jQuery usan tus aplicaciones web. Puedes hacerlo revisando las dependencias de tu proyecto o usando las herramientas de desarrollador del navegador para inspeccionar los scripts cargados. Herramientas automatizadas como OWASP Dependency-Check o herramientas comerciales de análisis de composición de software (SCA) pueden escanear tu base de código en busca de esta y otras vulnerabilidades conocidas de bibliotecas. Los análisis regulares de vulnerabilidades de aplicaciones web también ayudan a identificar vectores explotables de XSS.

Impacto y riesgo de la vulnerabilidad CVE-2020-11023

Un exploit exitoso puede tener un impacto grave tanto en los usuarios del sitio web como en su propietario. Para los usuarios, puede llevar al compromiso de la cuenta, robo de datos y redirección a sitios maliciosos. Para la empresa, puede resultar en daño reputacional, pérdida de confianza de los usuarios y posibles multas regulatorias si se expone información sensible. Como el exploit ocurre en el navegador del usuario, puede ser difícil de rastrear, pero el daño a la credibilidad de tu marca es inmediato.

Estrategias de mitigación y remediación

La principal estrategia de mitigación es simple: actualiza jQuery a la versión 3.5.0 o posterior. Esta es la solución más efectiva. Si no puedes actualizar de inmediato, debes implementar una validación estricta de entradas y una codificación de salida en todos los datos ingresados por el usuario que se muestran en una página. Usar una Política de Seguridad de Contenido (CSP) también puede dar una capa adicional de defensa al restringir las fuentes desde las que se pueden ejecutar scripts, lo que dificulta la ejecución de cargas útiles de XSS.

Preguntas frecuentes sobre la vulnerabilidad CVE-2020-11023

CVE-2020-11023 es una vulnerabilidad de secuencias de comandos en sitios cruzados (XSS) en versiones antiguas de jQuery. Permite que un atacante introduzca código malicioso en una página web al explotar una falla en la forma en que jQuery maneja HTML. Cuando un usuario visita la página, el script malicioso se ejecuta en su navegador.

No "infecta" sistemas en el sentido tradicional. En cambio, explota la confianza de un sitio web en su propio código. Un atacante logra que un usuario haga clic en un enlace malicioso o interactúe con un elemento web comprometido. Esto desencadena que el código vulnerable de jQuery en el sitio web ejecute un script que roba los datos del usuario o manipula su sesión.

Sí, absolutamente. jQuery se usa en todas partes, y muchos sitios web todavía funcionan con versiones antiguas y vulnerables. Los atacantes buscan activamente esta vulnerabilidad porque es una forma fácil y confiable de ejecutar ataques XSS. Si no has actualizado tu biblioteca jQuery, estás expuesto.

La mejor defensa es actualizar tu biblioteca jQuery a la versión 3.5.0 o superior. Realiza análisis regulares de dependencias para encontrar bibliotecas desactualizadas en tus proyectos. Además, implementa una Política de Seguridad de Contenido (CSP) sólida y siempre depura la entrada del usuario antes de mostrarla en una página.

Protege lo que importa

Protege endpoints, correo electrónico y empleados con el poder de nuestro SOC 24/7. Prueba Huntress gratis y despliega en minutos para empezar a combatir las amenazas.
Probar Huntress gratis