Linux: net: openvswitch: conntrack: fix helper UAF due to extensions realloc
What fixes it
- 18866dc1f525f9ee4de7709529d1ae1af8d8e8beLinuxCVE List
- 5f23080a625dd7855ab91485c8d691a54a1979f0LinuxCVE List
- 1a4151e6be57b098b7a5ebfbde58585e83200cdcLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
net: openvswitch: conntrack: fix helper UAF due to extensions realloc
While calling the helpers, a raw pointer to the extensions area is wired into expectations list:
-> nf_ct_helper() -> helper->help() -> nf_ct_expect_related_report() -> nf_ct_expect_insert() -> hlist_add_head_rcu(&exp->lnode, &master_help->expectations)
In case the connection is not confirmed yet, more extensions can be added afterwards with *_ext_add() calls reallocating the extension space and leaving the now invalid pointer in the expectations list that is later accessed while removing the expectation.
Make sure that helpers are called at the end after all the other extensions are already added.
Note that the helper rejection now leaves the mark and labels set, but that's not different from how the NAT was handled before or how the mark and the labels were handled on confirmation failure. And there are no atomicity guarantees provided by the API anyway.
Text from CVE List
Affected versions 12
- Linuxaffected: cae3a2627520c3795b54533c5328b77af3405dbe before 18866dc1f525f9ee4de7709529d1ae1af8d8e8beCVE List
- Linuxaffected: cae3a2627520c3795b54533c5328b77af3405dbe before afcf362625190c5260530b1d6c7daa98831f6b83CVE List
- Linuxaffected: cae3a2627520c3795b54533c5328b77af3405dbe before 5f23080a625dd7855ab91485c8d691a54a1979f0CVE List
- Linuxaffected: cae3a2627520c3795b54533c5328b77af3405dbe before e02a83bb0b7a203f6a22f55ad5f426765560f811CVE List
- Linuxaffected: cae3a2627520c3795b54533c5328b77af3405dbe before 1a4151e6be57b098b7a5ebfbde58585e83200cdcCVE List
- Linuxaffected: 4.3CVE List
- Linuxunaffected: all versions before 4.3CVE List
- Linuxunaffected: 6.6.160 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 5
- git.kernel.org/stable/c/18866dc1f525f9ee4de7709529d1ae1af8d8e8beReferencevia CVE List
- git.kernel.org/stable/c/afcf362625190c5260530b1d6c7daa98831f6b83Referencevia CVE List
- git.kernel.org/stable/c/5f23080a625dd7855ab91485c8d691a54a1979f0Referencevia CVE List
- git.kernel.org/stable/c/e02a83bb0b7a203f6a22f55ad5f426765560f811Referencevia CVE List
- git.kernel.org/stable/c/1a4151e6be57b098b7a5ebfbde58585e83200cdcReferencevia CVE List