CyberSecBulletin
CVE-2025-39873NVD status: Modified

Linux: Use After Free

CVE-2025-39873 is a high-severity use after free vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions e202ffd9e54538ef67ec301ebd6d9da4823466c9, 1139321161a3ba5e45e61e0738b37f42f20bc57a, 94b050726288a56a6b8ff55aa641f2fedbd3b44c as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.16% chance of exploitation within 30 days, which is low compared with other CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Update Linux to e202ffd9e54538ef67ec301ebd6d9da4823466c9 or 1139321161a3ba5e45e61e0738b37f42f20bc57a or 94b050726288a56a6b8ff55aa641f2fedbd3b44c or 725b33deebd6e4c96fe7893f384510a54258f28f, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 5.15.194 or 6.1.153 or 6.6.107 or 6.12.48, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinux1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, e202ffd9e54538ef67ec301ebd6d9da4823466c9; 1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, 1139321161a3ba5e45e61e0738b37f42f20bc57a; 1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, 94b050726288a56a6b8ff55aa641f2fedbd3b44c; 1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, 725b33deebd6e4c96fe7893f384510a54258f28f; 1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, 668cc1e3bb21101d074e430de1b7ba8fd10189e7; 1598efe57b3e768056e4ca56cb9cf33111e68d1c up to, but not including, ef79f00be72bd81d2e1e6f060d83cf7e425deee4; 4.19e202ffd9e54538ef67ec301ebd6d9da4823466c9, 1139321161a3ba5e45e61e0738b37f42f20bc57a, 94b050726288a56a6b8ff55aa641f2fedbd3b44c, 725b33deebd6e4c96fe7893f384510a54258f28f, 668cc1e3bb21101d074e430de1b7ba8fd10189e7, ef79f00be72bd81d2e1e6f060d83cf7e425deee4
LinuxLinux Kernel4.19 up to, but not including, 5.15.194; 5.16 up to, but not including, 6.1.153; 6.2 up to, but not including, 6.6.107; 6.7 up to, but not including, 6.12.48; 6.13 up to, but not including, 6.16.8; 6.175.15.194, 6.1.153, 6.6.107, 6.12.48, 6.16.8
DebianDebian Linux11.0Not stated

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
LocalThe attacker needs local access or must trick a user into running something.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
LowA basic user account is enough.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.17.8HighCNA
CVSS 3.17.8HighNVD

Official description

In the Linux kernel, the following vulnerability has been resolved: can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB can_put_echo_skb() takes ownership of the SKB and it may be freed during or after the call. However, xilinx_can xcan_write_frame() keeps using SKB after the call. Fix that by only calling can_put_echo_skb() after the code is done touching the SKB. The tx_lock is held for the entire xcan_write_frame() execution and also on the can_get_echo_skb() side so the order of operations does not matter. An earlier fix commit 3d3c817c3a40 ("can: xilinx_can: Fix usage of skb memory") did not move the can_put_echo_skb() call far enough. [mkl: add "commit" in front of sha1 in patch description] [mkl: fix indention]

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Use After Free

The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory belongs to the code that operates on the new pointer.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • When freeing pointers, be sure to set them to NULL once they are freed. However, the utilization of multiple or complex data structures may lower the usefulness of this strategy.

More Use After Free vulnerabilities (CWE-416)

Timeline

  1. CVE record published.
  2. Record last changed materially (score, affected products, status or references).

References

Third-party and government advisories

Recent Use After Free vulnerabilities

Spotted an error? Tell us.