Description
In the Linux kernel, the following vulnerability has been resolved: EFI/CPER: don't go past the ARM processor CPER record buffer There's a logic inside GHES/CPER to detect if the section_length is too small, but it doesn't detect if it is too big. Currently, if the firmware receives an ARM processor CPER record stating that a section length is big, kernel will blindly trust section_length, producing a very long dump. For instance, a 67 bytes record with ERR_INFO_NUM set 46198 and section length set to 854918320 would dump a lot of data going a way past the firmware memory-mapped area. Fix it by adding a logic to prevent it to go past the buffer if ERR_INFO_NUM is too big, making it report instead: [Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1 [Hardware Error]: event severity: recoverable [Hardware Error]: Error 0, type: recoverable [Hardware Error]: section_type: ARM processor error [Hardware Error]: MIDR: 0xff304b2f8476870a [Hardware Error]: section length: 854918320, CPER size: 67 [Hardware Error]: section length is too big [Hardware Error]: firmware-generated error record is incorrect [Hardware Error]: ERR_INFO_NUM is 46198 [ rjw: Subject and changelog tweaks ]
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
2f74f09bce4f8d0236f20174a6daae63e10fe733 to < c80113dcfc807308f5ab33847fae77e07531aeb8affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < ca2aad8771aa9091bc9e42e7d546bd40b72ddcd4affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < a68d22902a6916e10ee235fee609239004e129d0affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < 64eb63f573f497553e1a0c388bbcdd639e0f0704affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < be10c1bdf64a39832998f54900aa309b3917abcfaffected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < 25b290624b0e3d2f0f90238709ee0b6009b9fde8affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < 45766863baf899059e75595dd3cb1116467f2095affected2f74f09bce4f8d0236f20174a6daae63e10fe733 to < eae21beecb95a3b69ee5c38a659f774e171d730eaffected
Linux Linux
Default version status: affected
4.13affected0 to < 4.13unaffected5.10.252 to ≤ 5.10.*unaffected5.15.202 to ≤ 5.15.*unaffected6.1.165 to ≤ 6.1.*unaffected6.6.128 to ≤ 6.6.*unaffected6.12.75 to ≤ 6.12.*unaffected6.18.16 to ≤ 6.18.*unaffected6.19.6 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c80113dcfc807308f5ab33847fae77e07531aeb8 ↗
- https://git.kernel.org/stable/c/ca2aad8771aa9091bc9e42e7d546bd40b72ddcd4 ↗
- https://git.kernel.org/stable/c/a68d22902a6916e10ee235fee609239004e129d0 ↗
- https://git.kernel.org/stable/c/64eb63f573f497553e1a0c388bbcdd639e0f0704 ↗
- https://git.kernel.org/stable/c/be10c1bdf64a39832998f54900aa309b3917abcf ↗
- https://git.kernel.org/stable/c/25b290624b0e3d2f0f90238709ee0b6009b9fde8 ↗
- https://git.kernel.org/stable/c/45766863baf899059e75595dd3cb1116467f2095 ↗
- https://git.kernel.org/stable/c/eae21beecb95a3b69ee5c38a659f774e171d730e ↗