Vulnerabilidade no subsistema iSCSI do núcleo Linux que che permite aumentar os teus privilexios

Identificouse unha vulnerabilidade (CVE-2021-27365) no código do subsistema iSCSI do núcleo de Linux, que permite a un usuario local sen privilexios executar código a nivel do núcleo e obter privilexios de root no sistema. Hai dispoñible un prototipo funcional do exploit para probalo. A vulnerabilidade foi abordada nas actualizacións do núcleo de Linux 5.11.4, 5.10.21, 5.4.103, 4.19.179, 4.14.224, 4.9.260 e 4.4.260. As actualizacións do paquete do núcleo están dispoñibles nas distribucións Debian, Ubuntu, SUSE/openSUSE, Arch Linux e Fedora. Aínda non se publicaron correccións para RHEL.

O problema é causado por un erro na función iscsi_host_get_param() do módulo libiscsi, introducida en 2006 durante o desenvolvemento do subsistema iSCSI. Debido á falta de comprobacións de tamaño adecuadas, algúns atributos de cadea iSCSI, como o nome de host ou o nome de usuario, poden superar o valor PAGE_SIZE (4 KB). A vulnerabilidade pode ser explotada por un usuario sen privilexios que envía mensaxes de Netlink que establecen atributos iSCSI en valores superiores a PAGE_SIZE. Cando se len estes atributos a través de sysfs ou seqfs, chámase código que pasa os atributos á función sprintf para copialos nun búfer cuxo tamaño é PAGE_SIZE.

A explotación da vulnerabilidade nas distribucións depende da compatibilidade coa carga automática do módulo do núcleo scsi_transport_iscsi cando se tenta crear un socket NETLINK_ISCSI. Nas distribucións onde este módulo se carga automaticamente, o ataque pode levarse a cabo independentemente do uso da funcionalidade iSCSI. Ao mesmo tempo, para utilizar con éxito o exploit, é necesario rexistrar polo menos un transporte iSCSI adicional. Pola súa banda, para rexistrar un transporte, pode utilizar o módulo do núcleo ib_iser, que se carga automaticamente cando un usuario sen privilexios tenta crear un socket NETLINK_RDMA.

A carga automática dos módulos necesarios para a aplicación de explotación é compatible con CentOS 8, RHEL 8 e Fedora cando se instala o paquete rdma-core no sistema, que é unha dependencia para algúns paquetes populares e está instalado de forma predeterminada en configuracións para estacións de traballo, sistemas de servidor con Virtualización de GUI e ambientes host. Non obstante, rdma-core non se instala cando se utiliza un conxunto de servidor que só funciona no modo consola e cando se instala unha imaxe de instalación mínima. Por exemplo, o paquete está incluído na distribución base de Fedora 31 Workstation, pero non está incluído no Fedora 31 Server. Debian e Ubuntu son menos susceptibles ao problema porque o paquete rdma-core carga os módulos do núcleo necesarios para o ataque só se hai hardware RDMA.

Vulnerabilidade no subsistema iSCSI do núcleo Linux que che permite aumentar os teus privilexios

Como solución de seguridade, pode desactivar a carga automática do módulo libiscsi: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf

Ademais, solucionáronse no subsistema iSCSI dúas vulnerabilidades menos perigosas que poderían provocar a fuga de datos do núcleo: CVE-2021-27363 (fuga de información do descritor de transporte iSCSI a través de sysfs) e CVE-2021-27364 (búfer fóra de límites). ler). Estas vulnerabilidades pódense utilizar para comunicarse a través dun socket netlink co subsistema iSCSI sen os privilexios necesarios. Por exemplo, un usuario sen privilexios podería conectarse a iSCSI e emitir o comando "finalizar unha sesión" para finalizar a sesión.

Fonte: opennet.ru

Engadir un comentario