CVE-2026-74583

net/sched: cls_route: fix fastmap use-after-free on filter

State
Published
Severity
7.8 High
Published
Aug 21, 2026
Updated
Oct 16, 2026
Reserved
Aug 15, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before 7897198b26445b4009a057bda1986b94a99e5d5fAffected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before 820f083c294ad6d319c02a7d43294f2ed2565139Affected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before 5ec9001be6d0eb527251125632ec8fe88278897fAffected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before b969984b2bdc85d721ce4047cd270cd37ec705a2Affected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before a17f636c9330eac879822ce29f998e5abd1b72c1Affected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before 0e7a8cf8895b06d07c7311f028eba16ad742b9bcAffected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before ae9aff87025219005a2d16b4fe83d6f24643e50dAffected
  • 1109c00547fc66df45b9ff923544be4c1e1bec13 to before 47d7f7051253bdc02b1d245d87e38f16d31a74dfAffected
LinuxLinux
  • 3.18Affected
  • before 3.18Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.152 through 6.6.*Not affected
  • 6.12.104 through 6.12.*Not affected
  • 6.18.45 through 6.18.*Not affected
  • 7.1.9 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.