Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: ata: sata_dwc_460ex: fix infinite loop in NCQ tag completion bit-scanning The hand-rolled bit-scanning loop in the NCQ completion path has an infinite loop bug. When tag_mask has only high bits set (e.g. 0x80000000), the inner while loop left-shifts tag_mask until it overflows to 0. At that point !(0 & 1) is always true and 0 <<= 1 stays 0, causing an infinite loop in hardirq context with a spinlock held. Replace the open-coded bit-scanning with __ffs() which correctly finds the least significant set bit and is bounded by the width of the argument.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 62936009f35a6659cc3ebe0d90c754182d60da73 before ea9fa4dabe476f85fe73df30a6ab61a23c22fda4; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before d72e8089dc332ac48293512ef0de77cbe0e04d25; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before 4c6e64cae2b2dab32ad9099faa339f6a72c0ce16; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before 8c5de0d8ab6824cfdadcbbe1be4c6c9d9f4c1f80; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before 1842d45f461a78988254631893329bdf4596e954; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before 29b916d3556bd12a95be7c56ca391b8cd572f8be; affected 62936009f35a6659cc3ebe0d90c754182d60da73 before c2130f6553f4a5cbdc259de069600117a995f197 |
| Linux / Linux | affected 2.6.36; unaffected 0 before 2.6.36; unaffected 5.10.265 through 5.10.*; unaffected 5.15.216 through 5.15.*; unaffected 6.6.148 through 6.6.*; unaffected 6.12.101 through 6.12.*; unaffected 6.18.42 through 6.18.*; unaffected 7.1.6 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/ea9fa4dabe476f85fe73df30a6ab61a23c22fda4
- https://git.kernel.org/stable/c/d72e8089dc332ac48293512ef0de77cbe0e04d25
- https://git.kernel.org/stable/c/4c6e64cae2b2dab32ad9099faa339f6a72c0ce16
- https://git.kernel.org/stable/c/8c5de0d8ab6824cfdadcbbe1be4c6c9d9f4c1f80
- https://git.kernel.org/stable/c/1842d45f461a78988254631893329bdf4596e954
- https://git.kernel.org/stable/c/29b916d3556bd12a95be7c56ca391b8cd572f8be
- https://git.kernel.org/stable/c/c2130f6553f4a5cbdc259de069600117a995f197