{"id":"CVE-2025-37992","state":"PUBLISHED","title":"net_sched: Flush gso_skb list too during ->change()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet_sched: Flush gso_skb list too during ->change()\n\nPreviously, when reducing a qdisc's limit via the ->change() operation, only\nthe main skb queue was trimmed, potentially leaving packets in the gso_skb\nlist. This could result in NULL pointer dereference when we only check\nsch->limit against sch->q.qlen.\n\nThis patch introduces a new helper, qdisc_dequeue_internal(), which ensures\nboth the gso_skb list and the main queue are properly flushed when trimming\nexcess packets. All relevant qdiscs (codel, fq, fq_codel, fq_pie, hhf, pie)\nare updated to use this helper in their ->change() routines.","publishedAt":"2025-05-26T14:54:15.796Z","updatedAt":"2026-05-11T21:19:12.976Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"ea1132ccb112f51ba749c56a912f67970c2cd542","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d3336f746f196c6a53e0480923ae93939f047b6c","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d38939ebe0d992d581acb6885c1723fa83c1fb2c","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"a7d6e0ac0a8861f6b1027488062251a8e28150fd","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d1365ca80b012d8a7863e45949e413fb61fa4861","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"fe88c7e4fc2c1cd75a278a15ffbf1689efad4e76","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"2d3cbfd6d54a2c39ce3244f33f85c595844bd7b8","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/sch_generic.h","net/sched/sch_codel.c","net/sched/sch_fq.c","net/sched/sch_fq_codel.c","net/sched/sch_fq_pie.c","net/sched/sch_hhf.c","net/sched/sch_pie.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.5","versionType":"semver"},{"version":"5.10.238","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.184","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.140","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.92","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.30","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.14.8","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/sch_generic.h","net/sched/sch_codel.c","net/sched/sch_fq.c","net/sched/sch_fq_codel.c","net/sched/sch_fq_pie.c","net/sched/sch_hhf.c","net/sched/sch_pie.c"]}],"references":["https://git.kernel.org/stable/c/ea1132ccb112f51ba749c56a912f67970c2cd542","https://git.kernel.org/stable/c/d3336f746f196c6a53e0480923ae93939f047b6c","https://git.kernel.org/stable/c/d38939ebe0d992d581acb6885c1723fa83c1fb2c","https://git.kernel.org/stable/c/a7d6e0ac0a8861f6b1027488062251a8e28150fd","https://git.kernel.org/stable/c/d1365ca80b012d8a7863e45949e413fb61fa4861","https://git.kernel.org/stable/c/fe88c7e4fc2c1cd75a278a15ffbf1689efad4e76","https://git.kernel.org/stable/c/2d3cbfd6d54a2c39ce3244f33f85c595844bd7b8","https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html","https://lists.debian.org/debian-lts-announce/2025/08/msg00010.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:03.054Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/37xxx/CVE-2025-37992.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-37992","state":"PUBLISHED","datePublished":"2025-05-26T14:54:15.796Z","dateUpdated":"2026-05-11T21:19:12.976Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:23.976Z"},"containers":{"cna":{"title":"net_sched: Flush gso_skb list too during ->change()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet_sched: Flush gso_skb list too during ->change()\n\nPreviously, when reducing a qdisc's limit via the ->change() operation, only\nthe main skb queue was trimmed, potentially leaving packets in the gso_skb\nlist. This could result in NULL pointer dereference when we only check\nsch->limit against sch->q.qlen.\n\nThis patch introduces a new helper, qdisc_dequeue_internal(), which ensures\nboth the gso_skb list and the main queue are properly flushed when trimming\nexcess packets. All relevant qdiscs (codel, fq, fq_codel, fq_pie, hhf, pie)\nare updated to use this helper in their ->change() routines."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"ea1132ccb112f51ba749c56a912f67970c2cd542","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d3336f746f196c6a53e0480923ae93939f047b6c","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d38939ebe0d992d581acb6885c1723fa83c1fb2c","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"a7d6e0ac0a8861f6b1027488062251a8e28150fd","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"d1365ca80b012d8a7863e45949e413fb61fa4861","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"fe88c7e4fc2c1cd75a278a15ffbf1689efad4e76","versionType":"git"},{"version":"76e3cc126bb223013a6b9a0e2a51238d1ef2e409","status":"affected","lessThan":"2d3cbfd6d54a2c39ce3244f33f85c595844bd7b8","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/sch_generic.h","net/sched/sch_codel.c","net/sched/sch_fq.c","net/sched/sch_fq_codel.c","net/sched/sch_fq_pie.c","net/sched/sch_hhf.c","net/sched/sch_pie.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.5","versionType":"semver"},{"version":"5.10.238","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.184","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.140","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.92","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.30","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.14.8","status":"unaffected","lessThanOrEqual":"6.14.*","versionType":"semver"},{"version":"6.15","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/sch_generic.h","net/sched/sch_codel.c","net/sched/sch_fq.c","net/sched/sch_fq_codel.c","net/sched/sch_fq_pie.c","net/sched/sch_hhf.c","net/sched/sch_pie.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ea1132ccb112f51ba749c56a912f67970c2cd542"},{"url":"https://git.kernel.org/stable/c/d3336f746f196c6a53e0480923ae93939f047b6c"},{"url":"https://git.kernel.org/stable/c/d38939ebe0d992d581acb6885c1723fa83c1fb2c"},{"url":"https://git.kernel.org/stable/c/a7d6e0ac0a8861f6b1027488062251a8e28150fd"},{"url":"https://git.kernel.org/stable/c/d1365ca80b012d8a7863e45949e413fb61fa4861"},{"url":"https://git.kernel.org/stable/c/fe88c7e4fc2c1cd75a278a15ffbf1689efad4e76"},{"url":"https://git.kernel.org/stable/c/2d3cbfd6d54a2c39ce3244f33f85c595844bd7b8"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:19:12.976Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.10.238"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"5.15.184"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.1.140"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.6.92"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.12.30"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.14.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.5","versionEndExcluding":"6.15"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/08/msg00010.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T19:58:06.592Z"}}]}}}