In the Linux kernel, the following vulnerability has been resolved:
hwmon: (sht3x) Fix unaligned accesses
Sashiko reports:
In sht3xupdateclient(), the 16-bit temperature and humidity values are extracted from a stack-allocated byte array using be16tocpup(). The pointers passed to this function are calculated as buf and buf + 3. Since the difference between the two pointers is an odd number of bytes, at least one of them is guaranteed to be at an unaligned offset.
This will trigger an alignment fault on strict-alignment architectures such as ARMv5 or SPARC, resulting in a kernel panic.
Fix the problem by using getunalignedbe16() instead of be16tocpup(), and putunalignedbe16() instead of cputobe16().