-

CVE-2026-97547

xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN

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

xfs: fix exchange-range reflink flag clearing issue with INO1_WRITTEN

When exchanging two full-file ranges, xmi_can_exchange_reflink_flags()
can move the reflink inode flag from the file that currently has it to
the other file, as long as exactly one side is marked.  This assumes
that the file contents, and therefore all shared extents, are exchanged.

That assumption is not true when XFS_EXCHMAPS_INO1_WRITTEN is set.
xfs_exchmaps_can_skip_mapping() can skip hole and unwritten mappings
from file1, so an exchange can complete without moving every mapping
that the earlier flag-swap decision accounted for.  In that case the
post-operation cleanup can clear the reflink flag from an inode that
still owns shared written extents.  Later writes then take the
non-reflink write path and may update blocks that should still have
been protected by CoW, which shows up as data corruption between
reflink-related files.

Fix this by disabling the reflink flag exchange whenever
XFS_EXCHMAPS_INO1_WRITTEN is requested.  The contents exchange can still
proceed; the conservative outcome is that both inodes keep the reflink
flag.  The regular reflink flag cleanup path can drop the extra flag
later once the inode no longer has shared extents.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 966ceafc7a437105ecfe1cadb3747b2965a260ca
Version < 56f87ac2b9543be2be529b831666682e6df4bc40
Status affected
Version 966ceafc7a437105ecfe1cadb3747b2965a260ca
Version < fac32b9950a2aab3f8659d23b2947b8fb305c3fe
Status affected
Version 966ceafc7a437105ecfe1cadb3747b2965a260ca
Version < 8ae30b9a8c207f9bd03a98eda7b5d641daa79bdb
Status affected
Version 966ceafc7a437105ecfe1cadb3747b2965a260ca
Version < a23eca88448e52eb1a81549862df7adce794fafb
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 6.10
Status affected
Version 0
Version < 6.10
Status unaffected
Version <= 6.12.*
Version 6.12.111
Status unaffected
Version <= 6.18.*
Version 6.18.53
Status unaffected
Version <= 7.2.*
Version 7.2.7
Status unaffected
Version <= *
Version 7.3-rc3
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.2% 0.088
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/56f87ac2b9543be2be529b831666682e6df4bc40
https://git.kernel.org/stable/c/fac32b9950a2aab3f8659d23b2947b8fb305c3fe
https://git.kernel.org/stable/c/8ae30b9a8c207f9bd03a98eda7b5d641daa79bdb
https://git.kernel.org/stable/c/a23eca88448e52eb1a81549862df7adce794fafb