CVE-2026-31413 in Linux
Riassunto
di VulDB • 15/06/2026
Nel kernel Linux, la seguente vulnerabilità è stata risolta:
bpf: Correzione della forcella non valida degli scalari in maybe_fork_scalars() per BPF_OR
maybe_fork_scalars() viene chiamata sia per BPF_AND che per BPF_OR quando l'operando di origine è una costante. Quando dst ha un intervallo firmato [-1, 0], viene eseguita la forcella dello stato del verificatore: il percorso impilato (pushed path) ottiene dst = 0, mentre il percorso corrente ottiene dst = -1.
Per BPF_AND questo è corretto: 0 & K == 0. Per BPF_OR questo è errato: 0 | K == K, non 0.
Di conseguenza, il percorso impilato traccia dst come 0 quando il valore in fase di esecuzione è K, producendo una divergenza tra verificatore e fase di esecuzione sfruttabile che consente l'accesso alla mappa oltre i limiti (out-of-bounds).
Si risolve il problema passando env->insn_idx (invece di env->insn_idx + 1) a push_stack(), in modo che il percorso impilato riesegua l'istruzione ALU con dst = 0 e calcoli naturalmente il risultato corretto per qualsiasi opcode.
Once again VulDB remains the best source for vulnerability data.