CVE-2026-46289 lib/scatterlist: fix length calculations in extract_kvec_to_sg

Critical 9.8 Published Updated

A flaw in Linux kernel scatterlist extraction allows memory corruption via incorrect length calculations, potentially leading to denial of service or information disclosure.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-46289?

CVE-2026-46289 is a critical memory corruption vulnerability in Linux kernel, published on 8 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

In the Linux kernel, the following vulnerability has been resolved:

lib/scatterlist: fix length calculations in extract_kvec_to_sg

Patch series "Fix bugs in extract_iter_to_sg()", v3.

Fix bugs in the kvec and user variants of extract_iter_to_sg. This series is growing due to useful remarks made by sashiko.dev.

The main bugs are: - The length for an sglist entry when extracting from a kvec can exceed the number of bytes in the page. This is obviously not intended. - When extracting a user buffer the sglist is temporarily used as a scratch buffer for extracted page pointers. If the sglist already contains some elements this scratch buffer could overlap with existing entries in the sglist.

The series adds test cases to the kunit_iov_iter test that demonstrate all of these bugs. Additionally, there is a memory leak fix for the test itself.

The bugs were orignally introduced into kernel v6.3 where the function lived in fs/netfs/iterator.c. It was later moved to lib/scatterlist.c in v6.5. Thus the actual fix is only marked for backports to v6.5+.

This patch (of 5):

When extracting from a kvec to a scatterlist, do not cross page boundaries. The required length was already calculated but not used as intended.

Adjust the copied length if the loop runs out of sglist entries without extracting everything.

While there, return immediately from extract_iter_to_sg if there are no sglist entries at all.

A subsequent commit will add kunit test cases that demonstrate that the patch is necessary.

Weakness: CWE-401

Which versions are affected by CVE-2026-46289?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2026-46289?

Apply the vendor's patch.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2026-46289 being exploited?

There is no known exploitation of CVE-2026-46289 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-89592, BELL-CVE-2026-46289, DEBIAN-CVE-2026-46289, GHSA-qp34-4r23-mcwx, ROOT-OS-UBUNTU-2404-CVE-2026-46289, UBUNTU-CVE-2026-46289.

Is CVE-2026-46289 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free