net_sched: skbprio: Remove overly strict queue assertions
In the Linux kernel, the following vulnerability has been resolved: net_sched: skbprio: Remove overly strict queue assertions In the current implementation, skbprio enqueue/dequeue contains an assertion that fails under certain conditions when SKBPRIO is used as a child qdisc under TBF with specific parameters. The failure occurs because TBF sometimes peeks at packets in the child qdisc without actually dequeuing them when tokens are unavailable. This peek operation creates a discrepancy between the parent and child qdisc queue length counters. When TBF later receives a high-priority packet, SKBPRIO's queue length may show a different value than what's reflected in its internal priority queue tracking, triggering the assertion. The fix removes this overly strict assertions in SKBPRIO, they are not necessary at all.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.236, 5.15.180, 5.4.292, 6.1.134, 6.12.23, 6.13.11, 6.14.2, 6.6.87
- CVEs
- CVE-2025-38637
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 16:59 UTC · Revision 1
Source evidence
net_sched: skbprio: Remove overly strict queue assertions
core-osv · Original sourcePublished 18 Apr 2025, 07:01 UTC
In the Linux kernel, the following vulnerability has been resolved: net_sched: skbprio: Remove overly strict queue assertions In the current implementation, skbprio enqueue/dequeue contains an assertion that fails under certain conditions when SKBPRIO is used as a child qdisc under TBF with specific parameters. The failure occurs because TBF sometimes peeks at packets in the child qdisc without actually dequeuing them when tokens are unavailable. This peek operation creates a discrepancy between the parent and child qdisc queue length counters. When TBF later receives a high-priority packet, SKBPRIO's queue length may show a different value than what's reflected in its internal priority queue tracking, triggering the assertion. The fix removes this overly strict assertions in SKBPRIO, they are not necessary at all.
osv:CVE-2025-38637
Kernel
Fixed versions: 5.4.292, 5.10.236, 5.15.180, 6.1.134, 6.6.87, 6.12.23, 6.13.11, 6.14.2
Complete source record
{
"id": "72fccb12842df9be0e2465edb4267fff4fa997c4fd641d4d495b90a5cb9623b0",
"url": "https://osv.dev/vulnerability/CVE-2025-38637",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "net_sched: skbprio: Remove overly strict queue assertions",
"summary": "In the Linux kernel, the following vulnerability has been resolved: net_sched: skbprio: Remove overly strict queue assertions In the current implementation, skbprio enqueue/dequeue contains an assertion that fails under certain conditions when SKBPRIO is used as a child qdisc under TBF with specific parameters. The failure occurs because TBF sometimes peeks at packets in the child qdisc without actually dequeuing them when tokens are unavailable. This peek operation creates a discrepancy between the parent and child qdisc queue length counters. When TBF later receives a high-priority packet, SKBPRIO's queue length may show a different value than what's reflected in its internal priority queue tracking, triggering the assertion. The fix removes this overly strict assertions in SKBPRIO, they are not necessary at all.",
"evidence": "osv:CVE-2025-38637",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.4.292",
"evidence": "/affected/1/ranges"
},
{
"value": "5.10.236",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.180",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.134",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.87",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.23",
"evidence": "/affected/1/ranges"
},
{
"value": "6.13.11",
"evidence": "/affected/1/ranges"
},
{
"value": "6.14.2",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2025-38637",
"aliases": [
"CVE-2025-38637"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "aea5f654e6b78a0c976f7a25950155932c77a53f"
},
{
"fixed": "7abc8318ce0712182bf0783dcfdd9a6a8331160e"
},
{
"fixed": "1284733bab736e598341f1d3f3b94e2a322864a8"
},
{
"fixed": "32ee79682315e6d3c99947b3f38b078a09a66919"
},
{
"fixed": "1dcc144c322a8d526b791135604c0663f1af9d85"
},
{
"fixed": "864ca690ff135078d374bd565b9872f161c614bc"
},
{
"fixed": "2f35b7673a3aa3d09b3eb05811669622ebaa98ca"
},
{
"fixed": "2286770b07cb5268c03d11274b8efd43dff0d380"
},
{
"fixed": "034b293bf17c124fec0f0e663f81203b00aa7a50"
},
{
"fixed": "ce8fe975fd99b49c29c42e50f2441ba53112b2e8"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38637.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.19.0"
},
{
"fixed": "5.4.292"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.5.0"
},
{
"fixed": "5.10.236"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.180"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.134"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.87"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.23"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.13.11"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.14.0"
},
{
"fixed": "6.14.2"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-38637.json"
}
}
],
"modified": "2026-10-28T02:30:37.759759342Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/034b293bf17c124fec0f0e663f81203b00aa7a50",
"https://git.kernel.org/stable/c/1284733bab736e598341f1d3f3b94e2a322864a8",
"https://git.kernel.org/stable/c/1dcc144c322a8d526b791135604c0663f1af9d85",
"https://git.kernel.org/stable/c/2286770b07cb5268c03d11274b8efd43dff0d380",
"https://git.kernel.org/stable/c/2f35b7673a3aa3d09b3eb05811669622ebaa98ca",
"https://git.kernel.org/stable/c/32ee79682315e6d3c99947b3f38b078a09a66919",
"https://git.kernel.org/stable/c/7abc8318ce0712182bf0783dcfdd9a6a8331160e",
"https://git.kernel.org/stable/c/864ca690ff135078d374bd565b9872f161c614bc",
"https://git.kernel.org/stable/c/ce8fe975fd99b49c29c42e50f2441ba53112b2e8",
"https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html",
"https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38637.json",
"https://nvd.nist.gov/vuln/detail/CVE-2025-38637",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38637.json"
}
},
"related_cves": [
{
"value": "CVE-2025-38637",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 505036,
"published_at": "2025-04-18T07:01:34.564+00:00"
}