Identificáronse vulnerabilidades explotables en nf_tables, watch_queue e IPsec no núcleo de Linux

Identificáronse varias vulnerabilidades perigosas no núcleo de Linux que permiten a un usuario local aumentar os seus privilexios no sistema. Preparáronse prototipos operativos de exploits para todos os problemas en consideración.

  • Unha vulnerabilidade (CVE-2022-0995) no subsistema de seguimento de eventos watch_queue permite que os datos se escriban nun búfer fóra dos límites da memoria do núcleo. O ataque pode ser realizado por calquera usuario sen privilexios e dar lugar a que o seu código se execute con dereitos do núcleo. A vulnerabilidade existe na función watch_queue_set_size() e está asociada a un intento de borrar todos os punteiros dunha lista, aínda que non se asignou memoria para eles. O problema ocorre ao construír o núcleo coa opción "CONFIG_WATCH_QUEUE=y", que se usa na maioría das distribucións de Linux.

    A vulnerabilidade foi abordada nun cambio do núcleo engadido o 11 de marzo. Podes seguir as publicacións de actualizacións de paquetes en distribucións nestas páxinas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. O prototipo de exploit xa está dispoñible publicamente e permítelle obter acceso root cando se executa en Ubuntu 21.10 co núcleo 5.13.0-37.

    Identificáronse vulnerabilidades explotables en nf_tables, watch_queue e IPsec no núcleo de Linux

  • Vulnerabilidade (CVE-2022-27666) nos módulos do núcleo esp4 e esp6 coa implementación de transformacións ESP (Encapsulating Security Payload) para IPsec, utilizadas cando se usa IPv4 e IPv6. A vulnerabilidade permite que un usuario local con privilexios normais sobrescriba obxectos na memoria do núcleo e aumente os seus privilexios no sistema. O problema é causado por unha falta de conciliación entre o tamaño de memoria asignado e os datos reais recibidos, dado que o tamaño máximo da mensaxe podería superar o tamaño máximo de memoria asignado para a estrutura skb_page_frag_refill.

    A vulnerabilidade foi corrixida no núcleo o 7 de marzo (solucionada en 5.17, 5.16.15, etc.). Podes seguir as publicacións de actualizacións de paquetes en distribucións nestas páxinas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Xa se publicou en GitHub un prototipo funcional do exploit, que permite que un usuario común teña acceso root a Ubuntu Desktop 21.10 na configuración predeterminada. Afirma que con pequenos cambios o exploit tamén funcionará en Fedora e Debian. Cabe destacar que o exploit preparouse orixinalmente para a competición pwn2own 2022, pero os desenvolvedores do núcleo identificaron e corrixiron un erro asociado a el, polo que se decidiu revelar os detalles da vulnerabilidade.

  • Dúas vulnerabilidades (CVE-2022-1015, CVE-2022-1016) no subsistema netfilter do módulo nf_tables, que garante o funcionamento do filtro de paquetes nftables. O primeiro problema permite a un usuario local sen privilexios conseguir unha escritura fóra dos límites nun búfer asignado na pila. Prodúcese un desbordamento cando se procesan expresións nftables que teñen un formato determinado e que se procesan durante a fase de verificación dos índices especificados por un usuario que ten acceso ás regras de nftables.

    A vulnerabilidade prodúcese polo feito de que os desenvolvedores implicaron que o valor de "enum nft_registers reg" era dun só byte, cando cando se activaban certas optimizacións, o compilador, segundo a especificación C89, podía usar un valor de 32 bits para iso. . Debido a esta característica, o tamaño utilizado ao comprobar e asignar memoria non se corresponde co tamaño real dos datos da estrutura, o que leva a que a cola da estrutura se solape con punteiros na pila.

    O problema pódese aproveitar para executar código a nivel do núcleo, pero un ataque exitoso require acceso a nftables, que se poden obter nun espazo de nomes de rede separado con dereitos CLONE_NEWUSER ou CLONE_NEWNET (por exemplo, se pode executar un contedor illado). A vulnerabilidade tamén está intimamente relacionada coas optimizacións utilizadas polo compilador, que, por exemplo, están habilitadas ao construír no modo "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y". A explotación da vulnerabilidade é posible a partir do núcleo de Linux 5.12.

    A segunda vulnerabilidade en netfilter prodúcese ao acceder a unha área de memoria xa liberada (use-after-free) no manejador nft_do_chain e pode provocar unha fuga de áreas non inicializadas da memoria do núcleo, que se poden ler mediante manipulacións con expresións nftables e usar, por exemplo, para determinar enderezos de punteiros durante os exploits de desenvolvemento para outras vulnerabilidades. A explotación da vulnerabilidade é posible a partir do núcleo de Linux 5.13.

    As vulnerabilidades abórdanse nos parches do núcleo actuais 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 e 4.9.309. Podes seguir as publicacións de actualizacións de paquetes en distribucións nestas páxinas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. O investigador que identificou os problemas anunciou a preparación de exploits de traballo para ambas as vulnerabilidades, que está previsto que se publiquen nuns días, despois de que as distribucións publiquen actualizacións dos paquetes do núcleo.

Fonte: opennet.ru

Engadir un comentario