Description
In the Linux kernel, the following vulnerability has been resolved: net/802/mrp: fix vector attribute parsing in mrp_pdu_parse_vecattr In mrp_pdu_parse_vecattr(), vector attribute events are encoded three per byte and valen tracks the number of events left to process. The parser decrements valen after processing the first and second events from each event byte, but not after processing the third one. When valen is exactly a multiple of three, the loop continues after the last valid event and consumes the next byte as a new event byte, applying a spurious event to the MRP applicant state. Additionally, when valen is zero the parser unconditionally consumes attrlen bytes as FirstValue and advances the offset, even though per IEEE 802.1ak a VectorAttribute with only a LeaveAllEvent has valen of zero and no FirstValue or Vector fields. This corrupts the offset for subsequent PDU parsing. Also, when valen exceeds three the loop crosses byte boundaries but the attribute value is not incremented between the last event of one byte and the first event of the next. This causes the first event of the next byte to use the same attribute value as the third event rather than the next consecutive value. Decrement valen after processing the third event, skip FirstValue consumption when valen is zero, and increment the attribute value at the end of each loop iteration.
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
febf018d22347b5df94066bca05d0c11a84e839d to < ae65714d96f68bb252eb20085320bdaacab36c00affectedfebf018d22347b5df94066bca05d0c11a84e839d to < 36d259711872e3b2f6cd76a4d270c21931c0f35faffectedfebf018d22347b5df94066bca05d0c11a84e839d to < cc98717e591a963a616fdf15ecf48eefaf45d758affectedfebf018d22347b5df94066bca05d0c11a84e839d to < 6d6e42e8e17f18d61327f8653479c5b5e161ae1daffectedfebf018d22347b5df94066bca05d0c11a84e839d to < fd9c3a47c670bec6b18f44454cea023f93b5adb3affectedfebf018d22347b5df94066bca05d0c11a84e839d to < 42446ca0f3570663e87183c065e0b4def52dfba2affectedfebf018d22347b5df94066bca05d0c11a84e839d to < 6eea6494e542a03cdf755a593b7d74f3f7c260fdaffectedfebf018d22347b5df94066bca05d0c11a84e839d to < 7561c7fbc694308da73300f036719e63e42bf0b4affected
Linux Linux
Default version status: affected
3.9affected0 to < 3.9unaffected5.10.259 to ≤ 5.10.*unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.94 to ≤ 6.12.*unaffected6.18.36 to ≤ 6.18.*unaffected7.0.13 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ae65714d96f68bb252eb20085320bdaacab36c00 ↗
- https://git.kernel.org/stable/c/36d259711872e3b2f6cd76a4d270c21931c0f35f ↗
- https://git.kernel.org/stable/c/cc98717e591a963a616fdf15ecf48eefaf45d758 ↗
- https://git.kernel.org/stable/c/6d6e42e8e17f18d61327f8653479c5b5e161ae1d ↗
- https://git.kernel.org/stable/c/fd9c3a47c670bec6b18f44454cea023f93b5adb3 ↗
- https://git.kernel.org/stable/c/42446ca0f3570663e87183c065e0b4def52dfba2 ↗
- https://git.kernel.org/stable/c/6eea6494e542a03cdf755a593b7d74f3f7c260fd ↗
- https://git.kernel.org/stable/c/7561c7fbc694308da73300f036719e63e42bf0b4 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-784472.html ↗