CVE-2026-98226
Received Received - Intake

BaseFortify

Vulnerability report for CVE-2026-98226, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-06

Last updated on: 2026-10-19

Assigner: kernel.org

Description

In the Linux kernel, the following vulnerability has been resolved: mm, swap: fix SWAP_USAGE_OFFLIST_BIT collision with real usage count SWAP_USAGE_OFFLIST_BIT is embedded in the si->inuse_pages usage counter, and is meant to sit above any value that counter can reach. However, it is defined from BITS_PER_TYPE(atomic_t), so it is bit 30. On a system with 4 KiB pages the flag collides with the usage count once that count reaches 4 TiB. swap_usage_in_pages() masks bit 30 out, so whenever the real count has that bit set, every caller of it reads 4 TiB low: * /proc/swaps understates Used by 4 TiB. * A raw count of exactly 2^30 masks to zero, so try_to_unuse() takes its "if (!swap_usage_in_pages(si)) goto success;" early exit and swapoff tears the device down while pages are still swapped out. Nothing in the rest of swapoff aborts the teardown, so those pages are lost. Independently of swapoff, the collision also corrupts the counter and the plist. On a device in normal use, a free that leaves bit 30 set in the count makes swap_usage_sub() see the flag where there is only count, and call add_to_avail_list(). It clears the bit with fetch_and(~SWAP_USAGE_OFFLIST_BIT), leaving the stored count 4 TiB below the real one, and calls plist_add() on a device that is already listed, tripping the WARN_ON(!plist_node_empty(node)) in plist_add() and linking the node a second time. Change the definition of SWAP_USAGE_OFFLIST_BIT to be based on atomic_long_t instead. Note that the usage counter field itself is of this same type, so it is still a valid bit.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-06
Last Modified
2026-10-19
Generated
2026-10-19
AI Q&A
2026-10-06
EPSS Evaluated
2026-10-18
NVD
EUVD

Affected Vendors & Products

Showing 4 associated CPEs
Vendor Product Version / Range
Linux Linux b228386cf237e659cdf5d8037a19db0b0a06f6b5
Linux Linux b228386cf237e659cdf5d8037a19db0b0a06f6b5
Linux Linux b228386cf237e659cdf5d8037a19db0b0a06f6b5
Linux Linux 6.14

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves a collision between the SWAP_USAGE_OFFLIST_BIT flag and the swap usage counter. The flag is defined at bit 30 of the counter, which can be reached when the swap usage exceeds 4 TiB on a system with 4 KiB pages. This causes incorrect readings of swap usage, leading to issues like underreported swap usage in /proc/swaps and potential data loss during swapoff operations.

Detection Guidance

This vulnerability is specific to the Linux kernel's memory management and swap functionality. Detection requires checking the kernel version and swap usage patterns. Examine /proc/swaps for underreported swap usage or errors during swapoff operations. Kernel logs may show WARN_ON errors related to plist corruption.

Impact Analysis

The vulnerability can cause incorrect swap usage reporting, leading to understated swap usage in system monitoring tools. It may also result in data loss when swapoff is called prematurely due to misreading the swap usage count as zero. Additionally, it can corrupt the swap counter and plist, causing system warnings and potential instability.

Compliance Impact

This vulnerability primarily affects memory management in the Linux kernel and does not directly impact compliance with standards like GDPR or HIPAA. It could indirectly cause data loss or corruption if swapoff fails to properly handle pages, potentially leading to compliance issues if data integrity is compromised.

Mitigation Strategies

Upgrade the Linux kernel to a patched version where SWAP_USAGE_OFFLIST_BIT is redefined for atomic_long_t. Avoid running systems with swap usage approaching 4 TiB until patched. Monitor swap usage via /proc/swaps and kernel logs for plist errors.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-98226. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart