Description
In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: conntrack: avoid modifying shared unconfirmed ct entry In a case where skb with an unconfirmed ct entry gets cloned, we may end up committing both but with different sets of extensions. The series of events: 1. The first clone wants to commit and runs the helpers wiring up the extension pointer into the expectation list. 2. Then it looses the confirmation keeping the entry unconfirmed. 3. Second clone now wants to commit labels and adds the new extension for that breaking the pointer in the expectation list causing UAF on the destruction path later. While this is possible to trigger, there should be no practical network pipeline where committing both clones without modifications into the same zone is needed. So, let's just reset the entry in case for some reason we got an skb with a shared one during commit. This doesn't affect any known use cases, but avoids any potential problems with sharing and modification of the unconfirmed ct entry. The fixes tag points to the introduction of helpers, since that's the main UAF trigger for the sharing.
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
cae3a2627520c3795b54533c5328b77af3405dbe to < e0fa5ea434b7e8467ef3adc64e3858b1ca2a642daffectedcae3a2627520c3795b54533c5328b77af3405dbe to < 37e3c878b183a115f9a114067f9ef3b408ad27fbaffectedcae3a2627520c3795b54533c5328b77af3405dbe to < 707c2dc77891a874f4e8c52c285a511079164ec8affectedcae3a2627520c3795b54533c5328b77af3405dbe to < de41ee24f77b0fc45397db3e277cae2adbd43dfeaffectedcae3a2627520c3795b54533c5328b77af3405dbe to < 55e5256adf3940e71802e2f749cacf81518726b0affectedcae3a2627520c3795b54533c5328b77af3405dbe to < e2829ae5459ddb5fce526b2e84697edf6c0c3cefaffectedcae3a2627520c3795b54533c5328b77af3405dbe to < 457e0df1b5711fbeb7ba1b6bfd826f5ef30e7e55affectedcae3a2627520c3795b54533c5328b77af3405dbe to < 26b2bd70d22457556e2fa01cbf1192cb1a94d619affected
Linux Linux
Default version status: affected
4.3affected0 to < 4.3unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.55 to ≤ 6.18.*unaffected7.2.9 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e0fa5ea434b7e8467ef3adc64e3858b1ca2a642d ↗
- https://git.kernel.org/stable/c/37e3c878b183a115f9a114067f9ef3b408ad27fb ↗
- https://git.kernel.org/stable/c/707c2dc77891a874f4e8c52c285a511079164ec8 ↗
- https://git.kernel.org/stable/c/de41ee24f77b0fc45397db3e277cae2adbd43dfe ↗
- https://git.kernel.org/stable/c/55e5256adf3940e71802e2f749cacf81518726b0 ↗
- https://git.kernel.org/stable/c/e2829ae5459ddb5fce526b2e84697edf6c0c3cef ↗
- https://git.kernel.org/stable/c/457e0df1b5711fbeb7ba1b6bfd826f5ef30e7e55 ↗
- https://git.kernel.org/stable/c/26b2bd70d22457556e2fa01cbf1192cb1a94d619 ↗