diff options
| author | Michael Bommarito <michael.bommarito@gmail.com> | 2026-04-20 10:47:47 -0400 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2026-05-07 14:09:36 -0500 |
| commit | f98b48151cc502ada59d9778f0112d21f2586ca3 (patch) | |
| tree | 0008181319aa30c98bbe66095384e015e6affdc3 /rust/pin-init/examples | |
| parent | 8d09328dfda089675e4c049f3f256064a1d1996b (diff) | |
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.
Fixes: bc3e9dd9d104 ("cifs: Change SIDs in ACEs while transferring file ownership.")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'rust/pin-init/examples')
0 files changed, 0 insertions, 0 deletions
