CVE-2026-98084 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: el backtracking no debe borrar los registros R1-R5 del marco externo para las llamadas a funciones (callbacks)
Al procesar las llamadas a `bpf_loop()`, el verificador marca R1 (y R4) como precisos. R1 rastrea el número de iteraciones del bucle y, debido a la mecánica `'callback_depth < R1'` en `check_helper_call()`, debe marcarse como preciso. Sin embargo, la propagación de precisión para R1 estaba rota cuando se verificaba la llamada a `bpf_loop()` en una segunda iteración.
Considere el siguiente rastro de verificación: - main: bpf_loop(nr_loops, callback ...) - callback: BPF_EXIT - main: bpf_loop(nr_loops, callback ...) - ...
Mientras que la primera visita a la llamada `bpf_loop()` propagó la precisión de R1 como se esperaba, la segunda llamada a `mark_chain_precision()` en `check_helper_call()` configuró R1, pero este fue restablecido inmediatamente cuando `backtrack_insn()` procesó el BPF_EXIT precedente eliminado en este parche dentro del bucle.
Debido a ello, la segunda visita a la llamada `bpf_loop()` inyectó un punto de control con R1 no marcado como preciso. Esto podría engañar al verificador para que acepte programas inseguros. Consulte el siguiente parche para ver un ejemplo de dicho programa.
El commit está estructurado de manera que minimice los conflictos cuando 'bpf' se fusione eventualmente con 'bpf-next'.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.