netfilter: conntrack: fix wrong ct->timeout value
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1.28, 6.2.15, 6.3.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: conntrack: fix wrong ct->timeout value (struct nf_conn)->timeout is an interval before the conntrack confirmed. After confirmed, it becomes a timestamp. It is observed that timeout of an unconfirmed conntrack: • Set by calling ctnetlink_change_timeout(). As a result, `nfct_time_stamp` was wrongly added to `ct->timeout` twice. • Get by calling ctnetlink_dump_timeout(). As a result, `nfct_time_stamp` was wrongly subtracted. Call Trace: <TASK> dump_stack_lvl ctnetlink_dump_timeout __ctnetlink_glue_build ctnetlink_glue_build __nfqnl_enqueue_packet nf_queue nf_hook_slow ip_mc_output ? __pfx_ip_finish_output ip_send_skb ? __pfx_dst_output udp_send_skb udp_sendmsg ? __pfx_ip_generic_getfrag sock_sendmsg Separate the 2 cases in: • Setting `ct->timeout` in __nf_ct_set_timeout(). • Getting `ct->timeout` in ctnetlink_dump_timeout(). Pablo appends: Update ctnetlink to set up the timeout after the IPS_CONFIRMED flag is set on, otherwise conntrack creation via ctnetlink breaks. Note that the problem described in this patch occurs since the introduction of the nfnetlink_queue conntrack support, select a sufficiently old Fixes: tag for -stable kernel to pick up this fix.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From a4b4766c3cebb4018167e06b863d8e95b7274757 · fixed in 80c5ba0078e20d926d11d0778f9a43902664ebf0; From a4b4766c3cebb4018167e06b863d8e95b7274757 · fixed in ff5e4ac8dd7be7f1faba955c5779a68571eeb0f8; From a4b4766c3cebb4018167e06b863d8e95b7274757 · fixed in f612ae1ab4793701caf39386fb3b7f4b3ef44e48; From a4b4766c3cebb4018167e06b863d8e95b7274757 · fixed in 73db1b8f2bb6725b7391e85aab41fdf592b3c0c1
- Linux Linux
4.4
- KernelLinux
From 4.4.0 · fixed in 6.1.28; From 6.2.0 · fixed in 6.2.15; From 6.3.0 · fixed in 6.3.2