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

Vulnerabilidad en Go (CVE-2023-29453)

Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-94 Control incorrecto de generación de código (Inyección de código)
Fecha de publicación:
12/10/2023
Última modificación:
24/10/2023

Descripción

Las plantillas no consideran correctamente las comillas invertidas (`) como delimitadores de cadenas de Javascript y no las escapan como se esperaba. Las comillas invertidas se utilizan, desde ES6, para los literales de plantillas JS. Si una plantilla contiene una acción de plantilla Go dentro de un literal de plantilla Javascript, el contenido de la acción se puede usar para terminar el literal, inyectando código Javascript arbitrario en la plantilla Go. Como los literales de plantilla de ES6 son bastante complejos y ellos mismos pueden hacer interpolación de cadenas, se tomó la decisión de simplemente no permitir que se utilicen acciones de plantilla de Go dentro de ellos (por ejemplo, "var a = {{.}}"), ya que no hay forma obviamente segura de permitir este comportamiento. Esto adopta el mismo enfoque que github.com/google/safehtml. Con arreglo, Plantilla. Parse devuelve un error cuando encuentra plantillas como esta, con un código de error de valor 12. Este código de error no se ha exportado actualmente, pero se exportará en la versión de Go 1.21. Los usuarios que confían en el comportamiento anterior pueden volver a habilitarlo usando el indicador GODEBUG jstmpllitinterp=1, con la advertencia de que ahora se escaparán las comillas invertidas. Esto debe usarse con precaución.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:zabbix:zabbix-agent2:*:*:*:*:*:*:*:* 5.0.0 (incluyendo) 5.0.35 (excluyendo)
cpe:2.3:a:zabbix:zabbix-agent2:*:*:*:*:*:*:*:* 6.0.0 (incluyendo) 6.0.18 (excluyendo)
cpe:2.3:a:zabbix:zabbix-agent2:*:*:*:*:*:*:*:* 6.4.0 (incluyendo) 6.4.3 (excluyendo)


Referencias a soluciones, herramientas e información