Vulnerabilidade en XFS que permite ler datos de dispositivos de bloque en bruto

Identificouse unha vulnerabilidade (CVE-2021-4155) no código do sistema de ficheiros XFS que permite a un usuario local sen privilexios ler os datos de bloque non utilizados directamente desde un dispositivo de bloque. Todas as versións principais do núcleo de Linux anteriores á 5.16 que conteñen o controlador XFS están afectadas por este problema. A corrección incluíuse na versión 5.16, así como nas actualizacións do núcleo 5.15.14, 5.10.91, 5.4.171, 4.19.225, etc. O estado das actualizacións que se xeran para solucionar o problema nas distribucións pódese seguir nestas páxinas: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

A vulnerabilidade é causada polo comportamento incorrecto de dous ioctl(XFS_IOC_ALLOCSP) e ioctl(XFS_IOC_FREESP) específicos de XFS, que son un análogo funcional da chamada ao sistema fallocate() de todo o núcleo. Ao aumentar o tamaño dun ficheiro que non está aliñado en bloque, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP non restablece os bytes de cola a cero ata o límite do seguinte bloque. Así, en XFS cun tamaño de bloque estándar de 4096 bytes, un atacante pode ler ata 4095 bytes de datos escritos anteriores de cada bloque. Estas áreas poden conter datos de ficheiros eliminados, ficheiros desfragmentados e ficheiros con bloques deduplicados.

Podes probar o teu sistema para detectar o problema usando un prototipo de exploit sinxelo. Se, despois de executar a secuencia de comandos proposta, é posible ler o texto de Shakespeare, entón o controlador FS é vulnerable. Inicialmente montar unha partición XFS para a demostración require privilexios de root.

Dado que ioctl(XFS_IOC_ALLOCSP) e ioctl(XFS_IOC_FREESP) teñen practicamente a mesma funcionalidade que o fallocate(), e a súa única diferenza é a fuga de datos, a súa presenza é semellante a unha porta traseira. A pesar da política xeral de non cambiar as interfaces existentes no núcleo, por suxestión de Linus, decidiuse eliminar completamente estes ioctls na seguinte versión.

Fonte: opennet.ru

Engadir un comentario