CVE-2025-37859

page_pool: avoid infinite loop to schedule delayed worker

MEDIUM
5.5
CVSS Score
Published: May 9, 2025 at 06:42 AM UTC
Updated: June 17, 2026 at 09:15 AM UTC
2 products affected across 2 vendorsLinux KernelDebian Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.3%

Description

In the Linux kernel, the following vulnerability has been resolved: page_pool: avoid infinite loop to schedule delayed worker We noticed the kworker in page_pool_release_retry() was waken up repeatedly and infinitely in production because of the buggy driver causing the inflight less than 0 and warning us in page_pool_inflight()[1]. Since the inflight value goes negative, it means we should not expect the whole page_pool to get back to work normally. This patch mitigates the adverse effect by not rescheduling the kworker when detecting the inflight negative in page_pool_release_retry(). [1] [Mon Feb 10 20:36:11 2025] ------------[ cut here ]------------ [Mon Feb 10 20:36:11 2025] Negative(-51446) inflight packet-pages ... [Mon Feb 10 20:36:11 2025] Call Trace: [Mon Feb 10 20:36:11 2025] page_pool_release_retry+0x23/0x70 [Mon Feb 10 20:36:11 2025] process_one_work+0x1b1/0x370 [Mon Feb 10 20:36:11 2025] worker_thread+0x37/0x3a0 [Mon Feb 10 20:36:11 2025] kthread+0x11a/0x140 [Mon Feb 10 20:36:11 2025] ? process_one_work+0x370/0x370 [Mon Feb 10 20:36:11 2025] ? __kthread_cancel_work+0x40/0x40 [Mon Feb 10 20:36:11 2025] ret_from_fork+0x35/0x40 [Mon Feb 10 20:36:11 2025] ---[ end trace ebffe800f33e7e34 ]--- Note: before this patch, the above calltrace would flood the dmesg due to repeated reschedule of release_dw kworker.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 5.3.185.11 ≤ v < 5.15.1815.16 ≤ v < 6.1.1355.3.18 ≤ v < 5.45.4.5 ≤ v < 5.4.2935.5 ≤ v < 5.10.2375.5 ≤ v < 5.15.1815.5 ≤ v < 6.1.1355.5 ≤ v < 6.12.245.5 ≤ v < 6.13.125.5 ≤ v < 6.14.35.5 ≤ v < 6.155.5 ≤ v < 6.6.886.13 ≤ v < 6.13.126.14 ≤ v < 6.14.36.2 ≤ v < 6.6.886.7 ≤ v < 6.12.245.3.185.4.55.55f646cb2174d1a4e32b60b99097f5c4b522616bf22306d92ca59c59dc4aa3bab14768948193d56c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3
Vendor states this is fixed in 43130d02baa137033c25297aaae95fd0edc41654 (fixed)
Vendor states this is fixed in 7204335d1991c23fc615ab76f31f175748a578e1 (fixed)
Vendor states this is fixed in 738d1812ec2e395e953258aea912ddd867d11a13 (fixed)
Vendor states this is fixed in 90e089a64504982f8d62f223027cb9f903781f78 (fixed)
Vendor states this is fixed in 91522aba56e9fcdf64da25ffef9b27f8fad48e0f (fixed)
Vendor states this is fixed in 95f17738b86fd198924d874a5639bcdc49c7e5b8 (fixed)
Vendor states this is fixed in 9f71db4fb82deb889e0bac4a51b34daea7d506a3 (fixed)
Vendor states this is fixed in c3c7c57017ce1d4b2d3788c1fc59e7e39026e158 (fixed)
Vendor states this is fixed in e74e5aa33228c5e2cb4fc80ad103541a7b7805ec (fixed)
Vendor states this is fixed in 5.10.237 (unaffected)
Vendor states this is fixed in 5.15.181 (unaffected)
Affected range stops below 5.4, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.4.293 (unaffected)
Vendor states this is fixed in 5.5 (unaffected)
Vendor states this is fixed in 6.1.135 (unaffected)
Vendor states this is fixed in 6.12.24 (unaffected)
Vendor states this is fixed in 6.13.12 (unaffected)
Vendor states this is fixed in 6.14.3 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Vendor states this is fixed in 6.6.88 (unaffected)

References (11)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/43130d02baa137033c25297aaae95fd0edc41654
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/7204335d1991c23fc615ab76f31f175748a578e1
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/738d1812ec2e395e953258aea912ddd867d11a13
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/90e089a64504982f8d62f223027cb9f903781f78
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/91522aba56e9fcdf64da25ffef9b27f8fad48e0f
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/95f17738b86fd198924d874a5639bcdc49c7e5b8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/9f71db4fb82deb889e0bac4a51b34daea7d506a3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/c3c7c57017ce1d4b2d3788c1fc59e7e39026e158

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-835

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card