Vulnerabilidad en OPA (CVE-2022-23628)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/02/2022
Última modificación:
17/02/2022
Descripción
OPA es un motor de políticas de propósito general y de código abierto. Bajo determinadas condiciones, la impresión bonita de un árbol de sintaxis abstracta (AST) que contiene nodos sintéticos podría cambiar la lógica de algunas sentencias al reordenar los literales del array. Un ejemplo de políticas afectadas son las que analizan y comparan las rutas web. **Todas estas** tres condiciones tienen que cumplirse para crear un efecto adverso: 1. Un AST de Rego tuvo que ser **creado programáticamente** de tal manera que termina conteniendo términos sin ubicación (como variables comodín). 2. El AST tuvo que ser **impreso** usando el paquete "github.com/open-policy-agent/opa/format". 3. El resultado de la impresión bonita tuvo que ser **analizado y evaluado de nuevo** por medio de una instancia OPA usando los paquetes, o los paquetes Golang. Si alguna de estas tres condiciones no es cumplida, no está afectado. En particular, las tres condiciones son cumplidas si son usados **paquetes optimizados**, es decir, paquetes creados con "opa build -O=1" o superior. En ese caso, el optimizador cumpliría la condición (1.), cuyo resultado sería impreso al escribir el bundle en el disco, cumpliendo (2.). Cuando es usado el paquete, se cumpliría (3.). Como medida de mitigación solución, los usuarios pueden deshabilitar la optimización cuando son creados los paquetes
Impacto
Puntuación base 3.x
5.30
Gravedad 3.x
MEDIA
Puntuación base 2.0
4.30
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:openpolicyagent:open_policy_agent:*:*:*:*:*:*:*:* | 0.33.1 (incluyendo) | 0.37.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/open-policy-agent/opa/commit/932e4ffc37a590ace79e9b75ca4340288c220239
- https://github.com/open-policy-agent/opa/commit/bfd984ddf93ef2c4963a08d4fdadae0bcf1a3717
- https://github.com/open-policy-agent/opa/pull/3851
- https://github.com/open-policy-agent/opa/security/advisories/GHSA-hcw3-j74m-qc58



