PT-2022-7659 · Linux+5 · Linux Kernel+5

Filipe Manana

·

Publicado

2022-01-31

·

Atualizado

2025-05-27

·

CVE-2022-48733

CVSS v3.1

7.8

Alta

VetorAV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas
Kernel do Linux (versões afetadas não especificadas)
Descrição
O problema está relacionado a uma vulnerabilidade de uso após liberação (use-after-free) no sistema de arquivos btrfs do kernel Linux. Especificamente, ela ocorre ao criar um snapshot e a função btrfs commit transaction() falhar, levando a uma situação em que uma estrutura de snapshot pendente é liberada, mas ainda acessível, resultando em um cenário de uso após liberação (user-after-free). Isso pode acontecer na seguinte sequência:
  1. Um snapshot pendente é alocado e adicionado à lista de snapshots pendentes da transação.
  2. btrfs commit transaction() é chamada e, se falhar, a estrutura do snapshot pendente é liberada.
  3. Outra tarefa confirma a transação sem erros, acessando a estrutura do snapshot pendente já liberada, causando assim um “user-after-free”.
A vulnerabilidade poderia ser detectada pelo smatch, que gerava um aviso sobre o snapshot pendente não ter sido removido da lista. Para corrigir isso, o ioctl de criação de snapshot não deve adicionar diretamente o snapshot pendente à lista da transação. Em vez disso, ele deve adicionar o snapshot pendente ao identificador da transação e, então, em btrfs commit transaction(), adicionar o snapshot à lista somente quando for garantido que qualquer erro retornado após esse ponto resultará no abortamento da transação.
Recomendações
No momento, não há informações sobre uma versão mais recente que contenha uma correção para esta vulnerabilidade.

Exploit

Use After Free

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

BDU:2024-08341
CVE-2022-48733
DLA-3912-1
OESA-2024-1838
OESA-2024-1839
OPENSUSE-SU-2024_2372-1
OPENSUSE-SU-2024_2394-1
SUSE-SU-2024:2360-1
SUSE-SU-2024:2372-1
SUSE-SU-2024:2381-1
SUSE-SU-2024:2394-1
SUSE-SU-2024:2561-1
SUSE-SU-2024:2939-1
USN-7121-1
USN-7121-2
USN-7121-3
USN-7148-1
USN-7159-1
USN-7159-2
USN-7159-3
USN-7159-4
USN-7159-5
USN-7195-1
USN-7195-2

Produtos afetados

Astra Linux
Linuxmint
Linux Kernel
Red Os
Suse
Ubuntu