AZL-111206: CVE-2026-99113 affecting package kernel 6.6.157.1-1
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: zero the FSOBJECTIDINFORMATION buffer before filling it in
smb2getinfofilesystem() reports 64 bytes for FSOBJECTIDINFORMATION, that is the whole of struct objectidinfo, but writes only 46 of them:
- objid[] is 16 bytes, and when the volume UUID is not available only sizeof(stfs.ffsid) (8) bytes are copied into it; - extendedinfo.versionstring[] is STRINGLENGTH (28) bytes, and only strlen("1.1.0") (5) bytes are copied into it.
The response buffer is zeroed on allocation (kvzalloc() in smb2allocaterspbuf()), so for a standalone request the remaining 31 bytes are zero. In a compound request they need not be. The offset of the next response is advanced by the length pinned for the previous one, so if a preceding command wrote its reply into the buffer and then failed, smb2seterrrsp() pins only the short error response and the next reply lands inside the area that has already been written. Only the header is cleared there:
memset((char )rsphdr, 0, sizeof(struct smb2hdr) + 2);
The client then receives up to 31 bytes of a response it was not meant to see, including one that failed with an access denied error.
Clear the structure before filling it in. As a side effect versionstring is now NUL terminated.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In ksmbd, zero the FS_OBJECT_ID_INFORMATION buffer before filling it in; clear the structure before populating it.