CyberSecBulletin
CVE-2026-43278NVD status: Modified

Linux: Double Free

CVE-2026-43278 is a high-severity double 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 8d9ddad561136f7e6a9346767bf97b4d79e38e67, 7daf279c674d515fb22a727a7bbc92aeb35c5442, e2e738e8dfbbf83bd2bae0467ec4420cc52da42a 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.12% 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 8d9ddad561136f7e6a9346767bf97b4d79e38e67 or 7daf279c674d515fb22a727a7bbc92aeb35c5442 or e2e738e8dfbbf83bd2bae0467ec4420cc52da42a or b1c1a2637ebd675aa2d71fee8c70da8791d73850, whichever matches your release line, or a later version.
  2. Update Linux Kernel to 6.1.165 or 6.6.128 or 6.12.75 or 6.18.16, whichever matches your release line, or a later version.

Affected products and versions

VendorProductAffected versionsFixed in
LinuxLinuxab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, 8d9ddad561136f7e6a9346767bf97b4d79e38e67; ab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, 7daf279c674d515fb22a727a7bbc92aeb35c5442; ab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, e2e738e8dfbbf83bd2bae0467ec4420cc52da42a; ab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, b1c1a2637ebd675aa2d71fee8c70da8791d73850; ab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, 83d72091804600ead96dc9e9f518ea56cb4942f6; ab3e1d3bbab9e973aeb4dd4603251578658a47ff up to, but not including, fb8a6c18fb9a6561f7a15b58b272442b77a242dd; 6.18d9ddad561136f7e6a9346767bf97b4d79e38e67, 7daf279c674d515fb22a727a7bbc92aeb35c5442, e2e738e8dfbbf83bd2bae0467ec4420cc52da42a, b1c1a2637ebd675aa2d71fee8c70da8791d73850, 83d72091804600ead96dc9e9f518ea56cb4942f6, fb8a6c18fb9a6561f7a15b58b272442b77a242dd
LinuxLinux Kernel6.1 up to, but not including, 6.1.165; 6.2 up to, but not including, 6.6.128; 6.7 up to, but not including, 6.12.75; 6.13 up to, but not including, 6.18.16; 6.19 up to, but not including, 6.19.66.1.165, 6.6.128, 6.12.75, 6.18.16, 6.19.6

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 CNA.

Official description

In the Linux kernel, the following vulnerability has been resolved: dm: clear cloned request bio pointer when last clone bio completes Stale rq->bio values have been observed to cause double-initialization of cloned bios in request-based device-mapper targets, leading to use-after-free and double-free scenarios. One such case occurs when using dm-multipath on top of a PCIe NVMe namespace, where cloned request bios are freed during blk_complete_request(), but rq->bio is left intact. Subsequent clone teardown then attempts to free the same bios again via blk_rq_unprep_clone(). The resulting double-free path looks like: nvme_pci_complete_batch() nvme_complete_batch() blk_mq_end_request_batch() blk_complete_request() // called on a DM clone request bio_endio() // first free of all clone bios ... rq->end_io() // end_clone_request() dm_complete_request(tio->orig) dm_softirq_done() dm_done() dm_end_request() blk_rq_unprep_clone() // second free of clone bios Fix this by clearing the clone request's bio pointer when the last cloned bio completes, ensuring that later teardown paths do not attempt to free already-released bios.

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

The underlying weakness: Double Free

The product calls free() twice on the same memory address.

How developers prevent this class of flaw

  • Choose a language that provides automatic memory management.
  • Ensure that each allocation is freed only once. After freeing a chunk, set the pointer to NULL to ensure the pointer cannot be freed again. In complicated error conditions, be sure that clean-up routines respect the state of allocation properly. If the language is object oriented, ensure that object destructors delete each chunk of memory only once.
  • Use a static analysis tool to find double free instances.

More Double Free vulnerabilities (CWE-415)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Recent Double Free vulnerabilities

Spotted an error? Tell us.