CVE-2026-90312 in Linuxinformación

Resumen

por VulDB • 2026-09-18

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

bpf: Comprobar el tipo del puntero fuente (src ptr) en las cargas con adquisición antes de realizar la carga.

check_atomic_load() llama a check_load_mem() antes que atomic_ptr_type_ok(). Para una operación de carga con adquisición (load-acquire) que obtiene datos en su propio registro origen (dst_reg == src_reg), check_load_mem() sobrescribe el tipo del registro fuente (src_reg) con el tipo del valor cargado, por lo que la posterior llamada a atomic_ptr_type_ok() ya no ve el puntero de origen y falla al rechazar los tipos no permitidos (ctx, pkt, flow_keys, sock).

Dado que bpf_convert_ctx_accesses() no reescribe las cargas atómicas, el acceso sin procesar al objeto subyacente del kernel permanece inalterado. El tipo de destino se toma directamente del acceso a ctx; por ejemplo, una carga con adquisición del campo sk de la estructura __sk_buff deja el registro tipado como PTR_TO_SOCK_COMMON_OR_NULL, lo cual tampoco coincide con type_is_sk_pointer(), aunque en realidad contiene bytes sin convertir de struct sk_buff. Una vez superada la comprobación de NULL, se trata de un error de confusión de tipos (type confusion), no solo una fuga de datos del kernel.

Se valida src_reg mediante check_reg_arg() y se comprueba el tipo del puntero fuente con atomic_ptr_type_ok() antes de realizar la carga nuevamente, imitando a check_atomic_rmw(). Los números de registro fuera de rango ya son rechazados anteriormente por check_and_resolve_insns() (commit 503d21ef8eac ("bpf: Realizar validación temprana del rango de registros")), y la única exención allí presente, is_stack_arg_ldx(), requiere BPF_LDX | BPF_MEM | BPF_DW y, por tanto, nunca coincide con una instrucción BPF_ATOMIC. atomic_ptr_type_ok() no puede, por lo tanto, desreferenciar el estado del registro fuera de los límites; es decir, la lectura fuera de límites abordada por el commit que corrige este problema (Fixes) no vuelve a producirse (como también se demuestra mediante las pruebas automáticas/selftest).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-406840

CPE

listo

EPSS

0.00198

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!