No kernel Linux, a seguinte vulnerabilidade foi resolvida. btrfs: rejeitar o cache de espaço livre com mais entradas do que páginas Ao carregar um v 1 cache de espaço livre, __load_free_space_cache() toma num_ entries e num_bitmaps diretamente a partir do btrfs_free_space_header no- disco. Esse cabeçalho é armazenado na arbor_root sob uma chave com o tipo 0, para o qual o verificador de árvores não tem caso, então nenhuma contagem é validada antes da carga confiar nele. O loop de cargas num_ entra em tempos e mapeia a página seguinte sempre que a atual acaba, passando por io_ctl_check_crc() -> io_ctl_map_page(), que faz io_ctl->pages[io_ctl->index++]. Mas as páginas[] são alocadas em io_ctl_init() a partir do i_size do inodo cache, não a partir de num_entries:.

num_pages = DIV_ROUND_ UP(i_size_read(inode), PAGE_SIZE); io_ctl->pages = kcalloc(num_pages, sizeof(structut page *), GFP_ NOFS); Assim, se o num_entries reclama mais registros do que as páginas podem manter, o io_ctl->index corre para fora do fim das páginas[]. O lado de gravação nunca bate nisso porque io_ctl_add_entry() e io_ctl_add_bitmap() param uma vez que io_ctl->index >= io_ctl->num_pages; o lado de leitura apenas nunca teve a mesma verificação. Para acioná-lo, tome um cache limpo (num_entries = aqui), defina num_entries no cabeçalho para 0 x 10000, e conserte a soma de cheques da folha para que ainda passe o cheque de árvores. O inodo cache tem i_size = 65536, assim que num_pages é 16 e páginas[] é um 16 - apontador (kmalloc- 128 ) array. A carga agora tenta ler 65536 entradas, o índice io_ctl-> chega até 16, e páginas[ 16 ] é lido além do array:.

BUG: KASAN: laje- fora de- limites no io_ctl_check_crc (fs/btrfs/ free-space-cache.c: 420 fs/ btrfs/ free-space-cache.c: 565 ) Leitura do tamanho 8 no addr ffff 88800 c 833 a 80 por tarefa kworker/u 8: 3 / 58 io_ctl_check_crc (fs/btrfs/free-space-cache.c: 420 fs/ btrfs/ free-space-cache.c: 565 ) __load_free_space_cache (fs/btrfs/free-space-cache.c: 655 fs/ btrfs/ free-space-cache.c: 820 ) load_free_space_cache (fs/btrfs/free-space-cache.c: 1017 ) cacheching_ thread (fs/ btrfs/ block-group.c: 880 ) btrfs_work_ helper (fs/btrfs/async- thread.c: 312 ) processo_one_worker_thread kthread ret_from_fork free- space- cache.c: 420 é io_ctl_map_page(), inlineado para io_ctl_check_crc() na linha 565, por isso é o nome do KASAN. A fenda fora de limites é então tratada como uma página estruturada e entregue ao crc 32 c(), então a leitura ruim se transforma em uma falha de GP.

Adicione a verificação faltante ao io_ctl_check_crc(), que é onde tanto o loop de entrada como o loop bitmap acabam. Quando o num_ entries é muito grande, a carga agora falha como qualquer cache corrompido: __load_free_space_cache() o deixa cair e reconstrui o espaço livre da árvore de extensão, de modo que um cache válido nunca é rejeitado. Registro de aconselhamento: GHSA- 834 p- x 3 hc- j 46 g. Identificadores relacionados: CVE- 2026 - 64567.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 05 T 09: 31: 17.000 Z e lista a sua última modificação como 2026 - 08 - 19 T 18: 32: 03.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H.

Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões. Classificação e evidência: nenhum identificador CWE está listado. O registro contém 9 suporte de referências nestes tipos: AVISO, WEB.