Vulnerabilidad en Moby (CVE-2023-28841)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-311
Ausencia de cifrado en información sensible
Fecha de publicación:
04/04/2023
Última modificación:
15/09/2023
Descripción
Moby es un framework de contenedores de código abierto desarrollado por Docker Inc. que se distribuye como Docker, Mirantis Container Runtime y varios otros proyectos/productos posteriores. El componente Moby daemon (`dockerd`), que se desarrolla como moby/moby, se conoce comúnmente como *Docker*. El modo Swarm, que se compila y entrega de forma predeterminada en "dockerd" y, por lo tanto, está presente en la mayoría de las principales versiones de Moby, es un orquestador de contenedores simple e integrado que se implementa mediante una combinación de SwarmKit y código de red de soporte. El controlador de red "superpuesto" es una característica central del modo Swarm, que proporciona LAN virtuales aisladas que permiten la comunicación entre contenedores y servicios en todo el clúster. Este controlador es una implementación/usuario de VXLAN, que encapsula tramas de capa de enlace (Ethernet) en datagramas UDP que etiquetan la trama con los metadatos de VXLAN, incluido un ID de red VXLAN (VNI) que identifica la red superpuesta de origen. Además, el controlador de red superpuesta admite un modo cifrado opcional, desactivado de forma predeterminada, que resulta especialmente útil cuando los paquetes VXLAN atraviesan una red que no es de confianza entre nodos. Las redes superpuestas cifradas funcionan encapsulando los datagramas VXLAN mediante el uso del protocolo IPsec Encapsulating Security Payload en modo Transporte. Al implementar la encapsulación IPSec, las redes superpuestas cifradas obtienen propiedades adicionales de autenticación de origen mediante prueba criptográfica, integridad de datos mediante suma de verificación y confidencialidad mediante cifrado.Al configurar un endpoint en una red superpuesta cifrada, Moby instala tres reglas de iptables (firewall del kernel de Linux) que aplican IPSec tanto entrante como saliente. Estas reglas se basan en la extensión iptables `u32` proporcionada por el módulo del kernel `xt_u32` para filtrar directamente el campo VNI de un paquete VXLAN, de modo que las garantías IPSec se puedan aplicar en redes superpuestas cifradas sin interferir con otras redes superpuestas u otros usuarios de VXLAN. Una regla de iptables designa datagramas VXLAN salientes con un VNI que corresponde a una red superpuesta cifrada para encapsulación IPsec. Las redes superpuestas cifradas en las plataformas afectadas transmiten silenciosamente datos no cifrados. Como resultado, las redes "superpuestas" pueden parecer funcionales, pasando el tráfico como se esperaba, pero sin ninguna de las garantías esperadas de confidencialidad o integridad de los datos. Es posible que un atacante ubicado en una posición confiable en la red lea todo el tráfico de aplicaciones que se mueve a través de la red superpuesta, lo que resulta en secretos inesperados o divulgación de datos del usuario. Por lo tanto, debido a que muchos protocolos de bases de datos, API internas, etc. no están protegidos por una segunda capa de cifrado, un usuario puede utilizar redes superpuestas cifradas Swarm para proporcionar confidencialidad, que debido a esta vulnerabilidad ya no está garantizada. Los parches están disponibles en las versiones 23.0.3 y 20.10.24 de Moby. Como las versiones 20.10 de Mirantis Container Runtime tienen numeración diferente, los usuarios de esa plataforma deben actualizar a la versión 20.10.16. Algunos workarounds están disponibles. Cierre el puerto VXLAN (de forma predeterminada, el puerto UDP 4789) al tráfico saliente en el límite de Internet para evitar fugas involuntarias de tráfico no cifrado a través de Internet y/o asegúrese de que el módulo del kernel `xt_u32` esté disponible en todos los nodos del grupo Swarm.
Impacto
Puntuación base 3.x
6.80
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:mobyproject:moby:*:*:*:*:*:*:*:* | 1.12.0 (incluyendo) | 20.10.24 (excluyendo) |
| cpe:2.3:a:mobyproject:moby:*:*:*:*:*:*:*:* | 23.0.0 (incluyendo) | 23.0.3 (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/moby/libnetwork/blob/d9fae4c73daf76c3b0f77e14b45b8bf612ba764d/drivers/overlay/encryption.go#L205-L207
- https://github.com/moby/libnetwork/security/advisories/GHSA-gvm4-2qqg-m333
- https://github.com/moby/moby/issues/43382
- https://github.com/moby/moby/pull/45118
- https://github.com/moby/moby/security/advisories/GHSA-232p-vwff-86mp
- https://github.com/moby/moby/security/advisories/GHSA-33pg-m6jh-5237
- https://github.com/moby/moby/security/advisories/GHSA-6wrf-mxfj-pf5p
- https://github.com/moby/moby/security/advisories/GHSA-vwm3-crmr-xfxw
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/LYZOKMMVX4SIEHPJW3SJUQGMO5YZCPHC/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/XNF4OLYZRQE75EB5TW5N42FSXHBXGWFE/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/ZTE4ITXXPIWZEQ4HYQCB6N6GZIMWXDAI/



