CVE-2026-64436 in Linux
Sumário
de VulDB • 25/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net: af_key: inicializar alg_key_len para estados IPComp
pfkey_msg2xfrm_state() trata o caso IPComp (SADB_X_SATYPE_IPCOMP) alocando x->calg e copiando apenas o nome do algoritmo:
x->calg = kmalloc_obj(*x->calg); if (!x->calg) {
err = -ENOMEM; goto out; } strcpy(x->calg->alg_name, a->name); x->props.calgo = sa->sadb_sa_encrypt;
Ao contrário dos ramos de autenticação (x->aalg) e criptografia (x->ealg) da mesma função, o ramo de compressão nunca inicializa calg->alg_key_len. O IPComp não possui chave e a alocação reserva apenas sizeof(struct xfrm_algo) (ou seja, sem espaço para uma chave), deixando o campo contendo dados do slab não inicializados.
calg->alg_key_len é posteriormente usado como um comprimento por xfrm_algo_clone() quando um estado IPComp é clonado durante XFRM_MSG_MIGRATE:
xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));
onde xfrm_alg_len() retorna sizeof(*alg) + (alg_key_len + 7) / 8. Com um alg_key_len não nulo e lixo, o kmemdup() lê além do final do objeto calg de 68 bytes. Adicionar uma SA IPComp via PF_KEY e depois migrá-la aciona (net-next, KASAN, init_on_alloc=0):
BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.