Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: validate dacloffset before building DACL pointers parse_sec_desc(), build_sec_desc(), and the chown path in id_mode_to_cifs_acl() all add the server-supplied dacloffset to pntsd before proving a DACL header fits inside the returned security descriptor. On 32-bit builds a malicious server can return dacloffset near U32_MAX, wrap the derived DACL pointer below end_of_acl, and then slip past the later pointer-based bounds checks. build_sec_desc() and id_mode_to_cifs_acl() can then dereference DACL fields from the wrapped pointer in the chmod/chown rewrite paths. Validate dacloffset numerically before building any DACL pointer and reuse the same helper at the three DACL entry points.
Product status
bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 (git) before ba7f71b6161c0943dafc367565e5843d16b7d505
bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 (git) before 3b1ddba19e77ee35241cd27f16dc3e8d14e08db7
bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 (git) before c688f3ed73d31943334ad2139cb02ec49664322a
bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 (git) before 8bd07e417b6bda67e317920584e48cb6ee442a8a
bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 (git) before f98b48151cc502ada59d9778f0112d21f2586ca3
5.12
Any version before 5.12
6.6.140 (semver)
6.12.88 (semver)
6.18.30 (semver)
7.0.7 (semver)
7.1-rc3 (original_commit_for_fix)
References
git.kernel.org/...c/ba7f71b6161c0943dafc367565e5843d16b7d505
git.kernel.org/...c/3b1ddba19e77ee35241cd27f16dc3e8d14e08db7
git.kernel.org/...c/c688f3ed73d31943334ad2139cb02ec49664322a
git.kernel.org/...c/8bd07e417b6bda67e317920584e48cb6ee442a8a
git.kernel.org/...c/f98b48151cc502ada59d9778f0112d21f2586ca3