Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en append/override_content_security_policy_directives en la función SecureHeaders::OPT_OUT en Secure Headers (CVE-2020-5217)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-74 Neutralización incorrecta de elementos especiales en la salida utilizada por un componente interno (Inyección)
Fecha de publicación:
23/01/2020
Última modificación:
21/05/2020

Descripción

En Secure Headers (secure_headers de RubyGem), una vulnerabilidad de inyección de directiva está presente en las versiones anteriores a 3.8.0, 5.1.0 y 6.2.0. Si una entrada suministrada por el usuario fue pasada a append/override_content_security_policy_directives, se podría inyectar un punto y coma conllevando a una inyección de directiva. Esto podría ser usado para, por ejemplo anular una directiva script-src. Las directivas duplicadas son ignoradas y la primera gana. Las directivas en secure_headers están ordenadas alfabéticamente, por lo que casi todas van antes de script-src. Una directiva previamente indefinida recibiría un valor inclusive si la función SecureHeaders::OPT_OUT fue suministrada. Las versiones corregidas convertirán silenciosamente los puntos y comas en espacios y emitirán una advertencia de desaprobación cuando esto suceda. Esto resultará en mensajes inocuos de la consola del navegador si está siendo explotada o usada accidentalmente. En futuras versiones, generaremos errores de aplicación resultando en 500. Según la versión principal que esté usando, las versiones corregidas son 6.2.0, 5.1.0, 3.8.0.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:twitter:secure_headers:*:*:*:*:*:ruby:*:* 3.8.0 (excluyendo)
cpe:2.3:a:twitter:secure_headers:*:*:*:*:*:ruby:*:* 5.0.0 (incluyendo) 5.1.0 (excluyendo)
cpe:2.3:a:twitter:secure_headers:*:*:*:*:*:ruby:*:* 6.0.0 (incluyendo) 6.2.0 (excluyendo)