CVE-2024-50063 in Linux
Sumário
de VulDB • 21/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bpf: Impede chamada de cauda (tail call) entre programas (progs) anexados a diferentes hooks
Os programas bpf podem ser anexados a funções do kernel, e as funções anexadas podem aceitar parâmetros diferentes ou retornar valores de retorno diferentes. Se um prog anexado a uma função do kernel fizer uma chamada de cauda para um prog anexado a outra função do kernel, a verificação de acesso ao contexto (ctx) ou do valor de retorno pode ser contornada.
Por exemplo, se o prog1 estiver anexado à func1, que aceita apenas 1 parâmetro, e o prog2 estiver anexado à func2, que aceita dois parâmetros. Como o verificador assume que o contexto bpf (bpf ctx) passado para o prog2 é construído com base no protótipo da func2, o verificador permite que o prog2 acesse o segundo parâmetro do contexto bpf passado a ele. O problema é que o verificador não impede que o prog1 passe seu contexto bpf para o prog2 por meio de uma chamada de cauda. Neste caso, o contexto bpf passado para o prog2 é construído a partir da func1 em vez da func2, ou seja, a suposição para a verificação de acesso ao contexto é contornada.
Outro exemplo: se o prog1 do BPF LSM estiver anexado ao hook file_alloc_security e o prog2 do BPF LSM estiver anexado ao hook bpf_lsm_audit_rule_known. O verificador conhece as regras de valor de retorno para esses dois hooks, por exemplo, é legal para o bpf_lsm_audit_rule_known retornar o número positivo 1, e é ilegal para o file_alloc_security retornar um número positivo. Portanto, o verificador permite que o prog2 retorne o número positivo 1, mas não permite que o prog1 retorne um número positivo. O problema é que o verificador não impede que o prog1 chame o prog2 por meio de uma chamada de cauda. Neste caso, o valor de retorno 1 do prog2 será usado como o valor de retorno para o hook file_alloc_security do prog1. Ou seja, a regra de valor de retorno é contornada.
Este patch adiciona restrições para a chamada de cauda a fim de impedir tais contornamentos.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.