{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-37823","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2025-04-16T04:51:23.947Z","datePublished":"2025-05-08T06:26:16.839Z","dateUpdated":"2026-08-05T11:57:46.765Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:57:46.765Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too\n\nSimilarly to the previous patch, we need to safe guard hfsc_dequeue()\ntoo. But for this one, we don't have a reliable reproducer."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - Exploitation requires configuring an HFSC qdisc hierarchy with a netem/codel child and deleting a class via rtnetlink (RTM_NEWQDISC/RTM_NEWTCLASS/RTM_DELTCLASS), which is a local netlink socket operation. Per kernel scoring guidance, tc/netlink qdisc bugs are Local.\nAC:L - The attacker deterministically controls every element: the HFSC class curves (HFSC_RSC), the child qdisc's drop-on-dequeue behavior (netem loss/corrupt/nested-child enqueue failure, or aggressive codel parameters), packet injection, and the moment of class deletion; the whole sequence runs serialized under the qdisc/tree lock with no race to win. The absence of a maintainer reproducer reflects effort not spent, not a condition outside attacker control — the identical primitive in the companion commit 3df275ef0a6a had a reliable reproducer.\nPR:L - The rtnetlink handlers gate on netlink_net_capable(skb, CAP_NET_ADMIN), which is evaluated against the caller's netns user_ns, so an unprivileged user obtains it simply with `unshare -Urn` and can then create a dummy/veth device plus the full hfsc+netem hierarchy. No real root in the init namespace is needed.\nUI:N - The attacker performs the entire sequence — qdisc/class setup, packet transmission, and class deletion — from their own process. No victim action is involved.\nS:U - The corruption stays within the kernel's own memory and privilege domain, yielding standard local privilege escalation rather than crossing into another security authority such as a hypervisor or IOMMU boundary.\nC:H - The freed struct hfsc_class remains linked in the scheduler's eligible rbtree and is subsequently dereferenced, so a heap spray of the kmalloc-1k slot lets the attacker read back kernel data through the reclaimed object and its cl->qdisc pointer chain, giving effectively arbitrary kernel memory disclosure.\nI:H - After the free, hfsc_dequeue() performs an indirect call via qdisc_dequeue_peeked() through sch->dequeue read from the reclaimed object, plus bstats_update() writes and rb_erase()/rb_insert_color() on attacker-controlled node pointers — a direct control-flow hijack and arbitrary-write primitive leading to full kernel compromise.\nA:H - Even without successful heap grooming, traversing and erasing a freed rbtree node and calling through a stale function pointer reliably produces a kernel oops/panic, and the attacker can trigger it repeatedly for a complete denial of service."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sched/sch_hfsc.c"],"versions":[{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"68f256305ceb426d545a0dc31f83c2ab1d211a1e","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"2f46d14919c39528c6e540ebc43f90055993eedc","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"da7936518996d290e2fcfcaf6cd7e15bfd87804a","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"11bccb054c1462fb069219f8e98e97a5a730758e","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"76c4c22c2437d3d3880efc0f62eca06ef078d290","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"c6f035044104c6ff656f4565cd22938dc892528c","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"c6936266f8bf98a53f28ef9a820e6a501e946d09","status":"affected","versionType":"git"},{"version":"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2","lessThan":"6ccbda44e2cc3d26fd22af54c650d6d5d801addf","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/sched/sch_hfsc.c"],"versions":[{"version":"2.6.12","status":"affected"},{"version":"0","lessThan":"2.6.12","status":"unaffected","versionType":"semver"},{"version":"5.4.293","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.237","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.181","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.136","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.89","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.26","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.14.5","lessThanOrEqual":"6.14.*","status":"unaffected","versionType":"semver"},{"version":"6.15","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.4.293"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.10.237"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"5.15.181"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.1.136"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.6.89"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.12.26"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.14.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.12","versionEndExcluding":"6.15"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/68f256305ceb426d545a0dc31f83c2ab1d211a1e"},{"url":"https://git.kernel.org/stable/c/2f46d14919c39528c6e540ebc43f90055993eedc"},{"url":"https://git.kernel.org/stable/c/da7936518996d290e2fcfcaf6cd7e15bfd87804a"},{"url":"https://git.kernel.org/stable/c/11bccb054c1462fb069219f8e98e97a5a730758e"},{"url":"https://git.kernel.org/stable/c/76c4c22c2437d3d3880efc0f62eca06ef078d290"},{"url":"https://git.kernel.org/stable/c/c6f035044104c6ff656f4565cd22938dc892528c"},{"url":"https://git.kernel.org/stable/c/c6936266f8bf98a53f28ef9a820e6a501e946d09"},{"url":"https://git.kernel.org/stable/c/6ccbda44e2cc3d26fd22af54c650d6d5d801addf"}],"title":"net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-03T19:55:56.301Z"}}]}}