media: solo6x10: Check for out of bounds chip_id
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: media: solo6x10: Check for out of bounds chip_id Clang with CONFIG_UBSAN_SHIFT=y noticed a condition where a signed type (literal "1" is an "int") could end up being shifted beyond 32 bits, so instrumentation was added (and due to the double is_tw286x() call seen via inlining), Clang decides the second one must now be undefined behavior and elides the rest of the function[1]. This is a known problem with Clang (that is still being worked on), but we can avoid the entire problem by actually checking the existing max chip ID, and now there is no runtime instrumentation added at all since everything is known to be within bounds. Additionally use an unsigned value for the shift to remove the instrumentation even without the explicit bounds checking. [hverkuil: fix checkpatch warning for is_tw286x]
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
2.6.36
References 8
git.kernel.org
- stable/c/c327192ca26670cf6e588c1eeda66cd2fa97630e
- stable/c/0b3dadada2417782a63ce32dae05bafe1c949e3f
- stable/c/603e3859393ee2ce91393b7d05e6e56e4b66e5cd
- stable/c/33af366211ee78e3b074ff44a16121e537e86826
- stable/c/5849ae68d7b8b6ad55cc1bf0d227dd2ae6362528
- stable/c/d29f33b2cf98e4901cd5457d1ee34062e808df73
- stable/c/4d6db0c6bbbfd8d7bbdbf7ab6a9c003752abf116
- stable/c/0fdf6323c35a134f206dcad5babb4ff488552076