Description
In the Linux kernel, the following vulnerability has been resolved: remoteproc: fix OOB read via signed offset in rsc_table_for_each_entry() table->offset[i] is a u32 from firmware, but was stored into a signed int. A crafted offset like 0xFFFFFFF0 becomes -16, placing hdr 16 bytes before the table buffer. The subsequent avail check was bypassed because the negative int was promoted to a large size_t in the expression "table_sz - offset - sizeof(*hdr)", yielding a large positive avail and letting the out-of-bounds hdr->type read proceed undetected. Store the offset as u32 and validate it with unsigned comparisons before any pointer arithmetic.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
fd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < 0d385be8f199b349f325cf90584b47b6a044ea79affectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < cc85e0d3d3333fd5fd2d50c9a4578d209d7f2564affectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < 6a01ad25aa4f3a02153cf1d112cb9b65865cd5d8affectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < c82241a9454b2d30d53b50884f94b7972ba44a5eaffectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < bc4940793aaa16a9cf90063b11d6926f8014a1b7affectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < 6fd220604f06c746760183df74b07384c3fdd660affectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < 6282d47b24b0c98d08d02807d676a7f67b4c052eaffectedfd2c15ec1dd3c2fdfc6ff03bb9644da9d530e3b9 to < bb840ea69347aff7bde5a208e7b5b180669a7656affected
Linux Linux
Default version status: affected
3.4affected0 to < 3.4unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0d385be8f199b349f325cf90584b47b6a044ea79 ↗
- https://git.kernel.org/stable/c/cc85e0d3d3333fd5fd2d50c9a4578d209d7f2564 ↗
- https://git.kernel.org/stable/c/6a01ad25aa4f3a02153cf1d112cb9b65865cd5d8 ↗
- https://git.kernel.org/stable/c/c82241a9454b2d30d53b50884f94b7972ba44a5e ↗
- https://git.kernel.org/stable/c/bc4940793aaa16a9cf90063b11d6926f8014a1b7 ↗
- https://git.kernel.org/stable/c/6fd220604f06c746760183df74b07384c3fdd660 ↗
- https://git.kernel.org/stable/c/6282d47b24b0c98d08d02807d676a7f67b4c052e ↗
- https://git.kernel.org/stable/c/bb840ea69347aff7bde5a208e7b5b180669a7656 ↗