CVE-2026-74583 Uso después de liberar en cls_route del kernel de Linux
Una condición de carrera entre route4_classify y route4_delete/route4_change permite almacenar en la fastmap un puntero a un filtro que luego se libera, provocando un uso después de liberar. El problema se resolvió en el kernel de Linux.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,1 % · percentil 1
- Explotada activamenteNo confirmada
- Exploit públicoSí, 1
Afectados
Linux
desde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de 7897198b26445b4009a057bda1986b94a99e5d5fdesde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de 820f083c294ad6d319c02a7d43294f2ed2565139desde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de 5ec9001be6d0eb527251125632ec8fe88278897fdesde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de b969984b2bdc85d721ce4047cd270cd37ec705a2desde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de a17f636c9330eac879822ce29f998e5abd1b72c1desde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de 0e7a8cf8895b06d07c7311f028eba16ad742b9bcdesde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de ae9aff87025219005a2d16b4fe83d6f24643e50ddesde 1109c00547fc66df45b9ff923544be4c1e1bec13 hasta antes de 47d7f7051253bdc02b1d245d87e38f16d31a74df
Linux
3.18
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.
- Priorizá la corrección: hay código de explotación público.
Exploits públicos
Código publicado por terceros. Puede ser malicioso: revisalo solo en un entorno aislado.
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:
net/sched: cls_route: fix fastmap use-after-free on filter
The route4 classifier maintains a 16-slot fastmap cache that stores raw
struct route4_filter pointers indexed by (id, iif). The reader
(route4_classify) populates this cache via route4_set_fastmap() for every
classified packet that hits a filter. The writer (route4_delete,
route4_change) clears the cache via route4_reset_fastmap() before
RCU-deferred kfree of the filter.
This creates a UAF race:
1. Reader walks the RCU-protected bucket chain, finds filter f
2. Writer unlinks f, calls route4_reset_fastmap(), then tcf_queue_work()
3. Reader calls route4_set_fastmap() and writes f into the cache
*after* the writer's reset, caching a pointer about to be freed
4. After the RCU grace period, kfree(f) executes
5. Next classified packet on the same (id, iif) tuple hits the stale
fastmap entry and reads f->res from freed memory
Reproduced with an mdelay(100) accelerator in route4_set_fastmap() and a
concurrent add/delete stress test (provided by both zdi and Santosh).
Both triggered KASAN slab-use-after-free reports in the route4 fastmap
paths.
Fix:
Introduce a per-filter boolean dying flag to suppress stale fastmap
republishing by in-flight readers.
Referencias (8)
- git.kernel.org/stable/c/7897198b26445b4009a057bda1986b94a99e5d5f
- git.kernel.org/stable/c/820f083c294ad6d319c02a7d43294f2ed2565139
- git.kernel.org/stable/c/5ec9001be6d0eb527251125632ec8fe88278897f
- git.kernel.org/stable/c/b969984b2bdc85d721ce4047cd270cd37ec705a2
- git.kernel.org/stable/c/a17f636c9330eac879822ce29f998e5abd1b72c1
- git.kernel.org/stable/c/0e7a8cf8895b06d07c7311f028eba16ad742b9bc
- git.kernel.org/stable/c/ae9aff87025219005a2d16b4fe83d6f24643e50d
- git.kernel.org/stable/c/47d7f7051253bdc02b1d245d87e38f16d31a74df
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.