CVE-2026-31709

smb: client: validate the whole DACL before rewriting it in cifsacl

State
Published
Severity
8.8 High
Published
May 1, 2026
Updated
Oct 19, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

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

smb: client: validate the whole DACL before rewriting it in cifsacl

build_sec_desc() and id_mode_to_cifs_acl() derive a DACL pointer from a server-supplied dacloffset and then use the incoming ACL to rebuild the chmod/chown security descriptor.

The original fix only checked that the struct smb_acl header fits before reading dacl_ptr->size or dacl_ptr->num_aces. That avoids the immediate header-field OOB read, but the rewrite helpers still walk ACEs based on pdacl->num_aces with no structural validation of the incoming DACL body.

A malicious server can return a truncated DACL that still contains a header, claims one or more ACEs, and then drive replace_sids_and_copy_aces() or set_chmod_dacl() past the validated extent while they compare or copy attacker-controlled ACEs.

Factor the DACL structural checks into validate_dacl(), extend them to validate each ACE against the DACL bounds, and use the shared validator before the chmod/chown rebuild paths. parse_dacl() reuses the same validator so the read-side parser and write-side rewrite paths agree on what constitutes a well-formed incoming DACL.

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HLinux
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hredhat-SADP

Weaknesses

  • CWE-1288 Improper Validation of Consistency within Input
  • CWE-125 Out-of-bounds Read

Affected Products

ProductVersions
LinuxLinux
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before b8603d9ae6c9087662b098619996bc4a8064319dAffected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before c2abdebf72000a64603ced84d36ccbd164f11391Affected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before 8e47d297e7cf9a6029a0d38e7b22faba7d7aaf12Affected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before d92f3f0b22414e7515696a02224d0af55e3004a3Affected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before ff0ca46b13b9ef6edbcd238a3b6caacfef8ba0e5Affected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before b78db9bddc84136f6a0bb49e8883cf200dfb87a8Affected
  • bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 to before 0a8cf165566ba55a39fd0f4de172119dd646d39aAffected
LinuxLinux
  • 5.12Affected
  • before 5.12Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.140 through 6.6.*Not affected
  • 6.12.86 through 6.12.*Not affected
  • 6.18.35 through 6.18.*Not affected
  • 7.0.2 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.