[PATCH v2 0/2] xfs: fix out-of-range remote xattr value length
From: Aldo Ariel Panzardo
Date: Tue Jul 07 2026 - 15:01:11 EST
v1 tightened only the read-time leaf verifier. Darrick pointed out that
the underlying problem is the signed value-length check in the consumer,
xfs_attr_copy_value(): a remote value length is an on-disk __be32 that is
stored into the signed args->rmtvaluelen, so a crafted length such as
0x80000000 becomes negative and slips past the "buffer too small"
-ERANGE guard, and is then used as a copy length.
v2 fixes both ends:
1/2 rejects a negative or oversized value length in
xfs_attr_copy_value() before it is used, so a bogus length cannot
become a copy length even if it reaches the value copier.
2/2 is the v1 verifier fix, rejecting the malformed remote entry at
read time.
Both are bug fixes and are now cc'd to stable.
v2:
- 1/2 is new: fix the signed value-length check in xfs_attr_copy_value
(the consumer / root cause), per Darrick's review.
- 2/2: cc stable; otherwise unchanged from the v1 verifier patch.
v1: https://lore.kernel.org/linux-xfs/20260707140118.3217585-1-qwe.aldo@xxxxxxxxx/
Aldo Ariel Panzardo (2):
xfs: reject out-of-range attribute value lengths in
xfs_attr_copy_value
xfs: reject remote xattr entries with an out-of-range value length
fs/xfs/libxfs/xfs_attr_leaf.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
--
2.53.0