CyberSecBulletin
CVE-2025-38627NVD status: Modified

Linux: Use After Free

CVE-2025-38627 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 74cbeeca4f16823ba58c882e1d8b836c0e39c93d, 5d604d40cd3232b09cb339941ef958e49283ed0a, cc81768212cdc509e5a986274db7bc24d18cde19 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.19% 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 74cbeeca4f16823ba58c882e1d8b836c0e39c93d or 5d604d40cd3232b09cb339941ef958e49283ed0a or cc81768212cdc509e5a986274db7bc24d18cde19 or 8fae5b6addd5f6895e03797b56e3c7b9f9cd15c9, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 6.16.1 or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinuxbff139b49d9f70c1ac5384aac94554846aa834de up to, but not including, 74cbeeca4f16823ba58c882e1d8b836c0e39c93d; bff139b49d9f70c1ac5384aac94554846aa834de up to, but not including, 5d604d40cd3232b09cb339941ef958e49283ed0a; bff139b49d9f70c1ac5384aac94554846aa834de up to, but not including, cc81768212cdc509e5a986274db7bc24d18cde19; bff139b49d9f70c1ac5384aac94554846aa834de up to, but not including, 8fae5b6addd5f6895e03797b56e3c7b9f9cd15c9; bff139b49d9f70c1ac5384aac94554846aa834de up to, but not including, 39868685c2a94a70762bc6d77dc81d781d05bff5; 6.074cbeeca4f16823ba58c882e1d8b836c0e39c93d, 5d604d40cd3232b09cb339941ef958e49283ed0a, cc81768212cdc509e5a986274db7bc24d18cde19, 8fae5b6addd5f6895e03797b56e3c7b9f9cd15c9, 39868685c2a94a70762bc6d77dc81d781d05bff5
LinuxLinux Kernel6.0 up to, but not including, 6.16.16.16.1

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: f2fs: compress: fix UAF of f2fs_inode_info in f2fs_free_dic The decompress_io_ctx may be released asynchronously after I/O completion. If this file is deleted immediately after read, and the kworker of processing post_read_wq has not been executed yet due to high workloads, It is possible that the inode(f2fs_inode_info) is evicted and freed before it is used f2fs_free_dic. The UAF case as below: Thread A Thread B - f2fs_decompress_end_io - f2fs_put_dic - queue_work add free_dic work to post_read_wq - do_unlink - iput - evict - call_rcu This file is deleted after read. Thread C kworker to process post_read_wq - rcu_do_batch - f2fs_free_inode - kmem_cache_free inode is freed by rcu - process_scheduled_works - f2fs_late_free_dic - f2fs_free_dic - f2fs_release_decomp_mem read (dic->inode)->i_compress_algorithm This patch store compress_algorithm and sbi in dic to avoid inode UAF. In addition, the previous solution is deprecated in [1] may cause system hang. [1] https://lore.kernel.org/all/[email protected]

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

Recent Use After Free vulnerabilities

Spotted an error? Tell us.