Description
In the Linux kernel, the following vulnerability has been resolved: s390/vfio_ccw: Fix out of bounds check on CCW array The routine ccwchain_calc_length() counts the number of channel command words (CCWs) that are chained together in a single channel program, and rejects anything larger than CCWCHAIN_LEN_MAX (256) CCWs. The loop itself is "do..while (count < 257)", and while the logic in is_cpa_within_range() correctly adjusts between the 0-index array of CCWs and the count of CCWs starting at 1, this means it would look at a possible 257th CCW before ending the loop and (correctly) returning an error. Fix this by restructuring the loop to break as soon as 256 CCWs (thus indexes 0-255) are examined, without looking at memory outside the range.
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
0a19e61e6d4c6192077ead760ba0a2d350987d4c to < 0282fb1c4b638eecfe2cc558092c460911d8f7e2affected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < 907adc667d902fafbdb2d740d57b55bd025dc4cdaffected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < f20be33d093ce7630c17ff7ed93caf7eaf8ac1a3affected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < af3f80ca4c8b17f20f9e588def076288fdb49e65affected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < 499a8a66b1598bfab97182aed15e0f1646074a3daffected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < 4c2e1d359d7a2b82cdf3254e4e480af9417f99fbaffected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < d5d096cd9369e986d4e5153baa86b8b35c283e09affected0a19e61e6d4c6192077ead760ba0a2d350987d4c to < a005b7f1a491ffda61bff0fd0f6548f8986fb977affected
Linux Linux
Default version status: affected
4.12affected0 to < 4.12unaffected5.10.266 to ≤ 5.10.*unaffected5.15.217 to ≤ 5.15.*unaffected6.1.184 to ≤ 6.1.*unaffected6.6.153 to ≤ 6.6.*unaffected6.12.105 to ≤ 6.12.*unaffected6.18.46 to ≤ 6.18.*unaffected7.1.10 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0282fb1c4b638eecfe2cc558092c460911d8f7e2 ↗
- https://git.kernel.org/stable/c/907adc667d902fafbdb2d740d57b55bd025dc4cd ↗
- https://git.kernel.org/stable/c/f20be33d093ce7630c17ff7ed93caf7eaf8ac1a3 ↗
- https://git.kernel.org/stable/c/af3f80ca4c8b17f20f9e588def076288fdb49e65 ↗
- https://git.kernel.org/stable/c/499a8a66b1598bfab97182aed15e0f1646074a3d ↗
- https://git.kernel.org/stable/c/4c2e1d359d7a2b82cdf3254e4e480af9417f99fb ↗
- https://git.kernel.org/stable/c/d5d096cd9369e986d4e5153baa86b8b35c283e09 ↗
- https://git.kernel.org/stable/c/a005b7f1a491ffda61bff0fd0f6548f8986fb977 ↗