CVE-2026-80807: nilfs2: reject invalid block index in GC ioctl

Published Sep 4, 2026
·
Updated

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

nilfs2: reject invalid block index in GC ioctl

Syzbot reported list corruption caused by a double listaddtail() call on bh->bassocbuffers within nilfslookupdirtydatabuffers().

Analysis revealed that the root cause was the insertion of a page/folio with a page index of ULONGMAX into the page cache via the GC ioctl. filemapgetfoliostag(), called by nilfslookupdirtydatabuffers(), repeatedly detects a dirty folio with a page index of ULONGMAX due to index wrap-around, leading to duplicate processing of dirty buffers.

As a preparatory step, the GC ioctl loads the page/folio of the block to be moved during GC and inserts it into the page cache based on information in the nilfsvdesc structure passed as an argument. Normally, this does not cause issues because the user-space GC library configures the nilfsvdesc structure properly. However, since there is no range check on the parameters determining the page index, a request with artificially crafted parameters -- such as those generated by Syzbot -- can result in a page/folio being inserted with a page index of ULONGMAX, triggering the above problem.

This resolves the issue by checking the ranges of 'vdoffset' and 'vdvblocknr' in the nilfsvdesc structure that determine the page index, thereby preventing the invalid page/folio insertions.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Linux kernel (nilfs2) to a version that resolves this vulnerability.

    Fixed in nilfs2: reject invalid block index in GC ioctl

Event History

Sep 4, 2026
CVE Published
via MITRE·03:13 PM
Data Sourced
via MITRE·03:13 PM
Description

Frequently Asked Questions

1

What access does an attacker need to trigger this issue?

An attacker needs the ability to submit crafted nilfs2 garbage-collection ioctl requests. The malformed nilfs_vdesc parameters cause a page or folio with an ULONG_MAX page index to be inserted into the page cache.

2

Which systems are exposed?

Systems using the Linux kernel with the nilfs2 filesystem and its GC ioctl interface are relevant. The issue is not expected during normal garbage collection, because the user-space GC library normally supplies valid nilfs_vdesc values.

3

What is the effect of a successful trigger?

The crafted request can cause page-index wrap-around during dirty-folio lookup, resulting in repeated processing of dirty buffers and a double list_add_tail() call. This leads to list corruption.

4

How can this be mitigated if an update cannot be applied immediately?

Restrict access to the nilfs2 GC ioctl and avoid allowing untrusted users or processes to issue garbage-collection requests with attacker-controlled nilfs_vdesc parameters.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203