CVE-2026-92480: scsi: ufs: core: Validate string descriptors
In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Validate string descriptors
The string descriptor length includes a two-byte header while the UTF-16 payload starts after it. utf16stoutf8s() expects a count of UTF-16 code units, not bytes. Passing the payload byte count can make it read beyond the descriptor buffer.
Validate that the payload has an even byte count, pass a code-unit count to the converter, and allocate sufficient UTF-8 output space.
The raw string buffer starts after the descriptor header but its size is bLength. Copying bLength bytes from that pointer can read beyond the response buffer.
Allocate a zeroed bLength-sized buffer and copy only the UTF-16 payload. This preserves the raw buffer size consumed by the RPMB device-ID ABI while avoiding the overread.
Affected Software
Event History
Frequently Asked Questions
What systems are exposed to this issue?
Systems using the Linux kernel UFS core and processing UFS string descriptors are exposed. The affected paths include handling of UTF-16 string descriptor payloads and the raw string buffer used by the RPMB device-ID ABI.
What input conditions trigger the out-of-bounds reads?
A string descriptor with a payload length handled as bytes rather than UTF-16 code units can cause the UTF-16-to-UTF-8 converter to read past the descriptor buffer. An odd-length UTF-16 payload is invalid, and copying bLength bytes from a buffer that starts after the two-byte descriptor header can also read beyond the response buffer.
What does the fix change?
The fix rejects string descriptor payloads whose byte length is not even, passes a UTF-16 code-unit count to the converter, and allocates enough output space for UTF-8 conversion. It also allocates a zeroed buffer sized to bLength and copies only the UTF-16 payload, preserving the RPMB device-ID ABI raw-buffer size without overreading.