En el sistema de construcción Buildroot, destinado a crear entornos Linux de arranque para sistemas embebidos, se han identificado seis vulnerabilidades que permiten, durante la interceptación de tráfico en tránsito (MITM), realizar modificaciones en las imágenes del sistema generadas o ejecutar código a nivel del sistema de construcción. Las vulnerabilidades han sido corregidas en las versiones Buildroot 2023.02.8, 2023.08.4 y 2023.11.
Las primeras cinco vulnerabilidades (CVE-2023-45841, CVE-2023-45842, CVE-2023-45838, CVE-2023-45839, CVE-2023-45840) afectan al código de verificación de la integridad de los paquetes mediante hashes. Los problemas se relacionan con la posibilidad de utilizar HTTP para descargar archivos y la ausencia de archivos hash de verificación para algunos paquetes, lo que permite suplantar el contenido de esos paquetes si se tiene la capacidad de inmiscuirse en el tráfico de construcción. servidores (por ejemplo, al conectar al usuario a través de una red inalámbrica controlada por el atacante).
En particular, los paquetes aufs y aufs-util se descargaban por HTTP y no se verificaban mediante hashes. También faltaban los hashes para los paquetes riscv64-elf-toolchain, versal-firmware y mxsldr, que de manera predeterminada se descargaban por HTTPS, pero en caso de problemas se revertían a una descarga sin cifrado desde el host http://sources.buildroot.net. En ausencia de archivos '.hash', la herramienta Buildroot consideraba que la verificación había sido exitosa y procesaba los paquetes descargados, incluyendo la aplicación de parches incluidos en los paquetes y la ejecución de scripts de construcción. Al poder suplantar los paquetes descargados, el atacante podría añadir sus propios parches o archivos de construcción Makefiles, lo que permitiría modificar la imagen resultante o los scripts del sistema de construcción y ejecutar su propio código.
La sexta vulnerabilidad (CVE-2023-43608) es causada por un error en la implementación de la funcionalidad BR_NO_CHECK_HASH_FOR, que permite desactivar la verificación de integridad por hashes para paquetes selectivos. Algunos paquetes, como el núcleo de Linux, U-Boot y versal-firmware, permitían la descarga de las versiones más recientes para las cuales aún no se habían generado hashes de verificación. Para estas versiones se utilizaba la opción BR_NO_CHECK_HASH_FOR, que desactiva la verificación por hash. Los datos se descargaban por HTTPS, pero de manera predeterminada, en caso de fallo de la descarga, se revertía a acceder a source.buildroot.net sin cifrado mediante el protocolo http://. Durante un ataque MITM, el atacante podría bloquear la conexión al servidor HTTPS y así la descarga se revertiría a http://sources.buildroot.net.
Fuente: opennet.ru
