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