CVE-2026-64192 in Linux
Sumário
de VulDB • 20/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bpf: Rejeitar a criação de BPF_MAP_TYPE_INODE_STORAGE se o BPF LSM estiver não inicializado
Quando CONFIG_BPF_LSM=y está definido, os mapas de armazenamento inode do BPF (BPF_MAP_TYPE_INODE_STORAGE) são compilados no kernel. No entanto, se o BPF LSM não for explicitamente habilitado na inicialização (por exemplo, omitido do parâmetro "lsm="), lsm_prepare() nunca é executada para o BPF LSM.
Consequentemente, o deslocamento do blob de segurança inode do BPF (bpf_lsm_blob_sizes.lbs_inode) nunca é inicializado e permanece no seu tamanho compilado padrão de 8 bytes em vez de ser atualizado para um deslocamento válido após a struct rcu_head reservada (tipicamente 16 bytes ou mais).
Quando um usuário privilegiado cria e atualiza um mapa BPF_MAP_TYPE_INODE_STORAGE, bpf_inode() avalia inode->i_security + 8. Isso erroneamente faz aliasing do ponteiro de callback func da struct rcu_head no início do blob inode->i_security. Durante a limpeza subsequente dos elementos do mapa ou destruição do inode, escrever NULL em owner_storage limpa o ponteiro de callback RCU enfileirado. Quando rcu_do_batch() executa posteriormente o callback enfileirado, ele tenta buscar uma instrução no endereço 0x0, acionando um pânico imediato do kernel.
Corrigir isso introduzindo uma flag booleana global bpf_lsm_initialized marcada com __ro_after_init. Definir essa flag como true dentro de bpf_lsm_init() quando o framework LSM registrar com sucesso o BPF LSM. Controlar a alocação de mapas em inode_storage_map_alloc() com base nessa flag, retornando -EOPNOTSUPP se o BPF LSM estiver não inicializado.
Essa abordagem fail-fast impede que userspace aloque mapas de armazenamento inode quando a infraestrutura subjacente do BPF LSM está ausente, evitando estados de mapa zumbi.
VulDB is the best source for vulnerability data and more expert information about this specific topic.