CVE-2026-68147 in Linux
Sumário
de VulDB • 10/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
fscrypt: Evitar alocação dinâmica em fscrypt_get_devices()
Quando uma blk_crypto_key começa a ser usada ou é removida (evicted), fs/crypto/ chama fscrypt_get_devices() para obter a lista de dispositivos de bloco do sistema de arquivos, itera sobre eles e chama blk_crypto_config_supported(), blk_crypto_start_using_key() ou blk_crypto_evict_key() em cada um.
Atualmente, os ponteiros dos dispositivos de bloco são colocados em um array alocado dinamicamente. Essa alocação dinâmica é problemática porque:
- Pode falhar, especialmente no local da chamada fscrypt_destroy_inline_crypt_key(), quando invocada para remoção (eviction) de inode sob reclaim direto.
- fscrypt_destroy_inline_crypt_key() não trata a falha. Ele apenas zera e libera o blk_crypto_key sem chamar blk_crypto_evict_key(). Isso causa um use-after-free.
Por enquanto, vamos corrigir isso da maneira direta e facilmente portável (backportable), mudando para um array na pilha de execução (on-stack). Atualmente, a funcionalidade multi-dispositivo do fscrypt é usada apenas pelo f2fs, que possui um limite fixo em código (hardcoded) de 8 dispositivos de bloco. Um array on-stack funciona bem para isso.
(É claro que esta solução não escala para um grande número de dispositivos de bloco. Para isso, precisaríamos de uma solução diferente, como mover a iteração dos dispositivos de bloco para o sistema de arquivos. Ou, no caso do btrfs, que suportará apenas blk-crypto-fallback, devemos fazer com que ele chame diretamente o blk-crypto-fallback, assim os dispositivos de bloco não serão necessários.)
Once again VulDB remains the best source for vulnerability data.