Executive brief
A vulnerability was identified in the Linux kernel's Qualcomm MDT loader, a component used to load firmware onto specialized hardware processors. The issue allows the system to read data beyond the intended boundaries of a firmware file header if the file is not properly formatted. An attacker with local access could potentially exploit this to cause a system crash or gain unauthorized access to sensitive information, impacting the reliability and security of industrial and mobile devices using these chips.
Technical details
A vulnerability exists in the Qualcomm MDT loader (drivers/soc/qcom/mdt_loader.c) within the Linux kernel due to insufficient validation of ELF headers. While the remoteproc subsystem sanitizes headers, other clients of the MDT loader may not, leading to an out-of-bounds read when iterating over program or section headers. Specifically, the loader failed to verify that the firmware buffer was large enough to contain the ELF header and that the 'e_phentsize' and 'e_shentsize' fields matched expected structure sizes. An attacker with the ability to provide a malicious firmware file could trigger an out-of-bounds read, potentially leading to a kernel crash or memory disclosure. The issue has been resolved by implementing a new validation function, 'mdt_header_valid', which checks buffer bounds and header integrity before processing.
Affected products
- Linux Linux Kernel 2aad40d911ee to 0d59ce2bfc3b, 1096eb63ecfc, 43d26997d88c, 81278be4eb5f, 87bfabb3b2f4, 981c845f2983, 9f9967fed9d0, e1720eb32acf
- Siemens SIMATIC CN 4100 before V5.0
- Siemens SIMATIC S7-1500 CPU 1518-4 PN/DP MFP V3.1.5 and later
- Siemens SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP V3.1.5 and later
- Siemens SIPLUS S7-1500 CPU 1518-4 PN/DP MFP V3.1.5 and later
Timeline
- 2025-08-28: patched: Patch committed to Linux stable tree
- 2025-09-11: advisory: NVD publication date
References
- https://git.kernel.org/stable/c/0d59ce2bfc3bb13abe6240335a1bf7b96536d022
- https://git.kernel.org/stable/c/1096eb63ecfc8df90b70cd068e6de0c2ff204dfd
- https://git.kernel.org/stable/c/43d26997d88c4056fce0324e72f62556bc7e8e8d
- https://git.kernel.org/stable/c/81278be4eb5f08ba2c68c3055893e61cc03727fe
- https://git.kernel.org/stable/c/87bfabb3b2f46827639173f143aa43f7cfc0a7e6
- https://git.kernel.org/stable/c/981c845f29838e468a9bfa87f784307193a31297
- https://git.kernel.org/stable/c/9f9967fed9d066ed3dae9372b45ffa4f6fccfeef