CVE-2026-74583

Source
https://cve.org/CVERecord?id=CVE-2026-74583
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74583.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-74583
Downstream
Published
2026-08-21T16:31:55Z
Modified
2026-08-27T11:30:35Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
net/sched: cls_route: fix fastmap use-after-free on filter
Details

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.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74583.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1109c00547fc66df45b9ff923544be4c1e1bec13
Fixed
7897198b26445b4009a057bda1986b94a99e5d5f
Fixed
820f083c294ad6d319c02a7d43294f2ed2565139
Fixed
5ec9001be6d0eb527251125632ec8fe88278897f
Fixed
b969984b2bdc85d721ce4047cd270cd37ec705a2
Fixed
a17f636c9330eac879822ce29f998e5abd1b72c1
Fixed
0e7a8cf8895b06d07c7311f028eba16ad742b9bc
Fixed
ae9aff87025219005a2d16b4fe83d6f24643e50d
Fixed
47d7f7051253bdc02b1d245d87e38f16d31a74df

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74583.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.18.0
Fixed
5.10.265
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.216
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.183
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.152
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.104
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.45
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.9

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74583.json"