Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: require a full NFS mode SID before reading mode bits parse_dacl() treats an ACE SID matching sid_unix_NFS_mode as an NFS mode SID and reads sid.sub_auth[2] to recover the mode bits. That assumes the ACE carries three subauthorities, but compare_sids() only compares min(a, b) subauthorities. A malicious server can return an ACE with num_subauth = 2 and sub_auth[] = {88, 3}, which still matches sid_unix_NFS_mode and then drives the sub_auth[2] read four bytes past the end of the ACE. Require num_subauth >= 3 before treating the ACE as an NFS mode SID. This keeps the fix local to the special-SID mode path without changing compare_sids() semantics for the rest of cifsacl.
Product status
e2f8fbfb8d09c06decde162090fac3ee220aa280 (git) before b53b8e98c23310294fc45fc686db5ee860311896
e2f8fbfb8d09c06decde162090fac3ee220aa280 (git) before c8eef12af1cc73031639ea7cf16e0b10e2536b0b
e2f8fbfb8d09c06decde162090fac3ee220aa280 (git) before 38a69f08ee82c450d3e4168707fff2e317dc3ff7
e2f8fbfb8d09c06decde162090fac3ee220aa280 (git) before f8488c07bea2431ee12a6067d736578064fa46b4
e2f8fbfb8d09c06decde162090fac3ee220aa280 (git) before 2757ad3e4b6f9e0fed4c7739594e702abc5cab21
5.4
Any version before 5.4
6.6.136 (semver)
6.12.84 (semver)
6.18.25 (semver)
7.0.2 (semver)
7.1-rc1 (original_commit_for_fix)
References
git.kernel.org/...c/b53b8e98c23310294fc45fc686db5ee860311896
git.kernel.org/...c/c8eef12af1cc73031639ea7cf16e0b10e2536b0b
git.kernel.org/...c/38a69f08ee82c450d3e4168707fff2e317dc3ff7
git.kernel.org/...c/f8488c07bea2431ee12a6067d736578064fa46b4
git.kernel.org/...c/2757ad3e4b6f9e0fed4c7739594e702abc5cab21