lowCWE-353A08:2021

Falta Integridad de Subrecursos (SRI)

Scripts y hojas de estilo alojados en CDN cargados sin el atributo integrity, lo que significa que un CDN comprometido puede servir versiones maliciosas de tus dependencias a todos tus usuarios.

Cómo Funciona

SRI te permite incluir un hash criptográfico de un recurso en el HTML. El navegador calcula el hash del archivo descargado y se niega a ejecutarlo si no coincide. Sin SRI, si el CDN es comprometido (como ha pasado con cdnjs, polyfill.io y otros), tus usuarios ejecutan lo que el CDN sirva.

Código Vulnerable
<!-- MAL: script de CDN sin verificación de integridad -->
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
Código Seguro
<!-- BIEN: el hash SRI asegura que el archivo no ha cambiado -->
<script
  src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"
  integrity="sha256-qXBd/EfAdjOA2FGrGAG+b3YBn2tn5A6bhz+LSgYD96k="
  crossorigin="anonymous"
></script>

Ejemplo Real

En 2024, polyfill.io (un CDN ampliamente usado que sirve polyfills de navegador) fue adquirido por una empresa china que comenzó a inyectar JavaScript malicioso en sus archivos. Más de 100,000 sitios web que servían el script de polyfill.io fueron instantáneamente comprometidos. SRI habría bloqueado los archivos alterados.

Cómo Prevenirlo

  • Agrega los atributos integrity y crossorigin a todos los scripts y hojas de estilo alojados en CDN
  • Genera hashes SRI en srihash.org o usando openssl dgst -sha256
  • Fija versiones exactas en los CDNs (no @latest) para que el hash permanezca válido
  • Mejor aún: empaqueta las dependencias tú mismo y evita CDNs públicos para scripts críticos

Tecnologías Afectadas

ReactNext.jsjavascript

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas