{"id":"OESA-2026-4811","summary":"kernel security update","details":"The Linux Kernel, the operating system core itself.\r\n\r\nSecurity Fix(es):\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nipv4: free inet_opt and ireq_opt after an RCU grace period\n\ntcp_v4_syn_recv_sock() transfers ownership of ireq-&gt;ireq_opt to the\nchild socket (newinet-&gt;inet_opt) without copying it.\n\nAnother cpu can concurrently process a retransmitted SYN for the same\nrequest socket, and send a SYNACK from tcp_check_req().\ntcp_v4_send_synack() and inet_csk_route_req() read ireq-&gt;ireq_opt\nunder rcu_read_lock() only, and ip_build_and_send_pkt() and\nip_options_build() then read opt-&gt;optlen twice.\n\nNote that the SYNACK timer itself is not an issue: it holds a\nreference on its request socket, and inet_csk_reqsk_queue_drop()\ncalls timer_delete_sync() before the child can be freed.\n\nSince commit 079096f103fa (&quot;tcp/dccp: install syn_recv requests\ninto ehash table&quot;), request sockets are processed without holding\nthe listener lock, so nothing prevents the child socket from being\nfreed while the SYNACK is still being built. TCP child sockets do\nnot have SOCK_RCU_FREE, and inet_sock_destruct() frees inet_opt\nwith a plain kfree(), leading to a use-after-free in\nip_options_build().\n\nA similar issue exists with request socket migration\n(net.ipv4.tcp_migrate_req=1, or a BPF_SK_REUSEPORT_SELECT_OR_MIGRATE\nprogram). reqsk_timer_handler() clones the request socket with\ninet_reqsk_clone(), so that the old request socket and its clone\nshare the same ireq_opt, then reqsk_migrate_reset() clears the\npointer in the old one. Another cpu holding a reference on the old\nrequest socket can still be using these options (sending a SYNACK,\nor creating a child in tcp_v4_syn_recv_sock()) when the clone is\nfreed, and tcp_v4_reqsk_destructor() also uses a plain kfree().\n\nReaders already use RCU, and other paths replacing inet_opt\n(do_ip_setsockopt(), cipso_v4_sock_setattr()...) already use\nkfree_rcu(). Use kfree_rcu() in inet_sock_destruct() and\ntcp_v4_reqsk_destructor() as well.\n\nIPv6 is not affected by the first issue, because tcp_v6_syn_recv_sock()\nduplicates the options. tcp_v6_reqsk_destructor() has the same\nmigration issue with ipv6_opt, which is only set by CALIPSO. This\nwill be addressed in a separate patch.(CVE-2026-98432)","modified":"2026-11-11T12:45:08.407315435Z","published":"2026-11-11T12:26:25Z","upstream":["CVE-2026-98432"],"database_specific":{"severity":"Critical"},"references":[{"type":"ADVISORY","url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4811"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98432"}],"affected":[{"package":{"name":"kernel","ecosystem":"openEuler:24.03-LTS-SP1","purl":"pkg:rpm/openEuler/kernel&distro=openEuler-24.03-LTS-SP1"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.6.0-145.1.30.167.oe2403sp1"}]}],"ecosystem_specific":{"aarch64":["bpftool-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","bpftool-debuginfo-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-debuginfo-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-debugsource-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-devel-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-headers-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-source-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-tools-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-tools-debuginfo-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","kernel-tools-devel-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","perf-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","perf-debuginfo-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","python3-perf-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm","python3-perf-debuginfo-6.6.0-145.1.30.167.oe2403sp1.aarch64.rpm"],"src":["kernel-6.6.0-145.1.30.167.oe2403sp1.src.rpm"],"x86_64":["bpftool-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","bpftool-debuginfo-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-debuginfo-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-debugsource-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-devel-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-headers-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-source-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-tools-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-tools-debuginfo-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","kernel-tools-devel-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","perf-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","perf-debuginfo-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","python3-perf-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm","python3-perf-debuginfo-6.6.0-145.1.30.167.oe2403sp1.x86_64.rpm"]},"database_specific":{"source":"https://repo.openeuler.org/security/data/osv/OESA-2026-4811.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}