Vulnerabilidad en el subsistema eBPF que permite ejecutar código a nivel del núcleo de Linux

En el subsistema eBPF, que permite ejecutar controladores dentro del núcleo de Linux en una máquina virtual especial con JIT, se ha detectado una vulnerabilidad (CVE-2021-4204) que permite a un usuario local sin privilegios elevar sus permisos y ejecutar su código en el nivel del núcleo de Linux. El problema se presenta a partir del núcleo de Linux 5.8 y aún no ha sido corregido (también afecta a la versión 5.16). El estado de la formación de actualizaciones que solucionan el problema en las distribuciones se puede rastrear en las siguientes páginas: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Se ha informado de la creación de un exploit funcional, que se planea publicar el 18 de enero (a los usuarios y desarrolladores se les ha dado una semana para corregir la vulnerabilidad).

La vulnerabilidad es causada por una verificación incorrecta de los programas eBPF que se pasan para su ejecución. El subsistema eBPF proporciona funciones auxiliares, cuya correcta utilización es verificada por un verificador especial. Algunas funciones requieren pasar el valor PTR_TO_MEM como argumento y, para prevenir posibles desbordamientos de buffer, el verificador debe conocer el tamaño de la memoria asociada al argumento. Para las funciones bpf_ringbuf_submit y bpf_ringbuf_discard, la información sobre el tamaño de la memoria transmitida no fue comunicada al verificador, lo que podría ser utilizado para sobrescribir áreas de memoria fuera del buffer al ejecutar código eBPF especialmente diseñado.

Para llevar a cabo un ataque, el usuario debe tener la capacidad de cargar su programa BPF, y muchas distribuciones recientes de Linux bloquean esta posibilidad por defecto (incluyendo que el acceso no privilegiado a eBPF ahora está prohibido por defecto también en el núcleo, a partir de la versión 5.16). Por ejemplo, la vulnerabilidad puede ser explotada en la configuración por defecto de Ubuntu 20.04 LTS, pero en entornos de Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 y Fedora 33 se manifiesta solo si el administrador establece el parámetro kernel.unprivileged_bpf_disabled a 0. Como una solución alternativa para bloquear la vulnerabilidad, se puede prohibir la ejecución de programas BPF por parte de usuarios no privilegiados con el comando "sysctl -w kernel.unprivileged_bpf_disabled=1".

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster