CVE-2025-37859

page_pool: avoid infinite loop to schedule delayed worker

State
Published
Severity
Not scored
Published
May 9, 2025
Updated
May 23, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 05f646cb2174d1a4e032b60b99097f5c4b522616 to before c3c7c57017ce1d4b2d3788c1fc59e7e39026e158Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 9f71db4fb82deb889e0bac4a51b34daea7d506a3Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 91522aba56e9fcdf64da25ffef9b27f8fad48e0fAffected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 90e089a64504982f8d62f223027cb9f903781f78Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 95f17738b86fd198924d874a5639bcdc49c7e5b8Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 7204335d1991c23fc615ab76f31f175748a578e1Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before e74e5aa33228c5e2cb4fc80ad103541a7b7805ecAffected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 738d1812ec2e395e953258aea912ddd867d11a13Affected
  • c3f812cea0d7006469d1cf33a4a9f0a12bb4b3a3 to before 43130d02baa137033c25297aaae95fd0edc41654Affected
  • bf22306d92ca59c59dc4aa3bab14768948193d56Affected
  • 5.4.5 to before 5.4.293Affected
  • 5.3.18 to before 5.4Affected
LinuxLinux
  • 5.5Affected
  • before 5.5Not affected
  • 5.4.293 through 5.4.*Not affected
  • 5.10.237 through 5.10.*Not affected
  • 5.15.181 through 5.15.*Not affected
  • 6.1.135 through 6.1.*Not affected
  • 6.6.88 through 6.6.*Not affected
  • 6.12.24 through 6.12.*Not affected
  • 6.13.12 through 6.13.*Not affected
  • 6.14.3 through 6.14.*Not affected
  • 6.15 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.