mtd: spi-nor: swp: Improve locking user experience
- 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: mtd: spi-nor: swp: Improve locking user experience In the case of the first block being locked (or the few first blocks), if the user want to fully unlock the device it has two possibilities: • either it asks to unlock the entire device, and this works; • or it asks to unlock just the block(s) that are currently locked, which fails. It fails because the conditions "can_be_top" and "can_be_bottom" are true. Indeed, in this case, we unlock everything, so the TB bit does not matter. However in the current implementation, use_top would be true (as this is the favourite option) and lock_len, which in practice should be reduced down to 0, is set to "nor->params->size - (ofs + len)" which is a positive number. This is wrong. An easy way is to simply add an extra condition. In the unlock() path, if we can achieve the same result from both sides, it means we unlock everything and lock_len must simply be 0. A comment is added to clarify that logic.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
4.6
References 8
git.kernel.org
- stable/c/23c285be8f6fcde9088fe12bb69c701d46696be1
- stable/c/a6fd2145c73b80bb6a5eed7355a4f63597d712d9
- stable/c/9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a
- stable/c/dc341272cf8e15a2c511db3c4df5dab8adf70ad0
- stable/c/6110ab5ffd84e8daa654652446a03ce2f77580a7
- stable/c/c0806df5cf806545160f3fdac3c888926ceac557
- stable/c/12d4d69221159e6d0e72400ec81195d691169b53
- stable/c/e1d456b26bf23e30db305a6184e8abd9ab68bbf2