CVE-2025-37949
MediumIn the Linux kernel, the following vulnerability has been resolved: xenbus: Use kref to track req lifetime Marek reported seeing a NULL pointer fault in the xenbus_thread callstack: BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: e030:__wake_up_common+0x4c/0x180 Call Trace: <TASK> __wake_up_common_lock+0x82/0xd0 process_msg+0x18e/0x2f0 xenbus_thread+0x165/0x1c0 process_msg+0x18e is req->cb(req). req->cb is set to xs_wake_up(), a thin wrapper around wake_up(), or xenbus_dev_queue_reply(). It seems like it was xs_wake_up() in this case. It seems like req may have woken up the xs_wait_for_reply(), which kfree()ed the req. When xenbus_thread resumes, it faults on the zero-ed data. Linux Device Drivers 2nd edition states: "Normally, a wake_up call can cause an immediate reschedule to happen, meaning that other processes might run before wake_up returns." ... which would match the behaviour observed. Change to keeping two krefs on each request. One for the caller, and one for xenbus_thread. Each will kref_put() when finished, and the last will free it. This use of kref matches the description in Documentation/core-api/kref.rst
CVSS 3.1 score
5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness type
CWE-476CVE-2025-37949 is a NULL Pointer Dereference vulnerability
What is NULL Pointer Dereference?
The product dereferences a pointer that it expects to be valid but is NULL, typically causing a crash. Learn more on MITRE CWE
Affected versions
Linux kernel versions
4.11
and later are affected. Fixed in
5.4.294,
5.10.238,
5.15.183,
6.1.139,
6.6.91,
6.12.29,
6.14.7,
6.15
and their respective stable series.
References
The following references provide additional information about CVE-2025-37949 including vendor advisories, patch commits, exploit details, and third-party analysis. Links are sourced from the NIST NVD database.
-
Third Party Advisory
-
Third Party Advisory
-
PatchKernel patch commithttps://git.kernel.org/stable/c/0e94a246bb6d9538010b6c02d2b1d4717a97b2e5
-
PatchKernel patch commithttps://git.kernel.org/stable/c/1f0304dfd9d217c2f8b04a9ef4b3258a66eedd27
-
PatchKernel patch commithttps://git.kernel.org/stable/c/2466b0f66795c3c426cacc8998499f38031dbb59
Frequently asked questions
-
What is CVE-2025-37949?
CVE-2025-37949 is a Medium severity Linux kernel vulnerability with a CVSS score of 5.5 out of 10 , classified as a NULL Pointer Dereference flaw (CWE-476) . It affects Linux kernel versions from 4.11 onward and has been patched in 5.4.294, 5.10.238, 5.15.183 and others. CVE-2025-37949 has not been confirmed as actively exploited and is not listed in the CISA KEV catalog.
-
What is the CVSS score for CVE-2025-37949?
CVE-2025-37949 has a CVSS score of 5.5 out of 10, rated Medium severity (CVSS 3.1). The vector string is
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. -
Is there a patch available for CVE-2025-37949?
Yes — CVE-2025-37949 has been patched. Fixed versions include 5.4.294, 5.10.238, 5.15.183 and others. If you are running Linux kernel 4.11 or later up to the fix versions, apply the relevant patch for your kernel branch.
-
Is CVE-2025-37949 actively exploited?
No — CVE-2025-37949 has not been confirmed as actively exploited. It is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
-
What is NULL Pointer Dereference (CWE-476)?
The product dereferences a pointer that it expects to be valid but is NULL, typically causing a crash. View CWE-476 on MITRE CWE →