remoteproc: fix OOB read via signed offset in rsc_table_for_each_entry()
3Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackepss 0.2%
exploitation probability
0.2%top 88% of all CVEs
observed exploitation
nono source reports it
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
Linux · LinuxReferences
https://git.kernel.org/stable/c/0d385be8f199b349f325cf90584b47b6a044ea79https://git.kernel.org/stable/c/6282d47b24b0c98d08d02807d676a7f67b4c052ehttps://git.kernel.org/stable/c/6a01ad25aa4f3a02153cf1d112cb9b65865cd5d8https://git.kernel.org/stable/c/6fd220604f06c746760183df74b07384c3fdd660https://git.kernel.org/stable/c/bb840ea69347aff7bde5a208e7b5b180669a7656https://git.kernel.org/stable/c/bc4940793aaa16a9cf90063b11d6926f8014a1b7https://git.kernel.org/stable/c/c82241a9454b2d30d53b50884f94b7972ba44a5ehttps://git.kernel.org/stable/c/cc85e0d3d3333fd5fd2d50c9a4578d209d7f2564