CVE-2026-99235 Uso después de liberar en histogramas de field variables de tracing
En el kernel de Linux, create_field_var_hist() guarda un puntero a un histograma compatible existente en lugar del que crea, y find_compatible_hist() puede elegir uno sin variables propias. El usuario puede eliminarlo mientras el objetivo aún lo referencia, lo que lleva a un uso después de liberar.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,1 % · percentil 2
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
Linux
desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de a6165126b1a1b26342b55be6eb6ee23af8756abadesde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 173914501b97236d7ea7dc2af7f30feddd4e1436desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de ac815a379644b2ad5008a009a3516ada31b5dd82desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 8b307d64a60548e4a74cb746f74d7ed4bd49965edesde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 7a111ba0d1b74c99bc8f096565dc71945f694254desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 3609ada3c12cecfb0ae5ee82ef4f86c5f18a2deadesde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 9631dbccd3c649b567a5aafffea6b00634183997desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de 7cafc82e6153f05a221be678cd649d02e06ba909desde 02205a6752f223779a1b0e9e8ffacbea6e717851 hasta antes de d5c42664fc094899af9aae5300b27fe8fdb658ef
Linux
4.17
Qué hacer
- Verificá si usás Linux y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 7.8 ALTA
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Vector de ataqueLocal
- Complejidad del ataqueBaja
- Privilegios requeridosBajos
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadAlta
- IntegridadAlta
- DisponibilidadAlta
Descripción original
In the Linux kernel, the following vulnerability has been resolved:
tracing: Save the event file instead of the compatible histogram
create_field_var_hist() creates a histogram on the matched event to
supply a field variable, and records it on the target so it can be torn
down later:
hist_data = find_compatible_hist(target_hist_data, file);
...
/* Save the compatible histogram information */
var_hist->hist_data = hist_data;
hist_data is not the histogram it creates. It is one that was already
there, whose keys the new one copies. The saved pointer has a single
user, unregister_field_var_hists(), which runs when the target is
removed:
file = hist_data->field_var_hists[i]->hist_data->event_file;
find_compatible_hist() matches on keys alone, so it can pick one with no
variables of its own. check_var_refs() then returns false and the user
can remove it while the target still points at it:
BUG: KASAN: slab-use-after-free in event_hist_trigger_free+0x2b2/0x320
Read of size 8 at addr ffff8880093b90e0 by task init/1
Freed by task 1:
kfree+0x154/0x420
event_hist_trigger_free+0x1d5/0x320
event_hist_trigger_parse+0x35f3/0x69e0
trigger_process_regex+0x1a6/0x250
Save the event file instead. It is all the dereference ever wanted, and
it does not go away when the user removes a trigger.
Referencias (9)
- git.kernel.org/stable/c/a6165126b1a1b26342b55be6eb6ee23af8756aba
- git.kernel.org/stable/c/173914501b97236d7ea7dc2af7f30feddd4e1436
- git.kernel.org/stable/c/ac815a379644b2ad5008a009a3516ada31b5dd82
- git.kernel.org/stable/c/8b307d64a60548e4a74cb746f74d7ed4bd49965e
- git.kernel.org/stable/c/7a111ba0d1b74c99bc8f096565dc71945f694254
- git.kernel.org/stable/c/3609ada3c12cecfb0ae5ee82ef4f86c5f18a2dea
- git.kernel.org/stable/c/9631dbccd3c649b567a5aafffea6b00634183997
- git.kernel.org/stable/c/7cafc82e6153f05a221be678cd649d02e06ba909
- git.kernel.org/stable/c/d5c42664fc094899af9aae5300b27fe8fdb658ef
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.