Description
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.
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
a4b4766c3cebb4018167e06b863d8e95b7274757 to < 80c5ba0078e20d926d11d0778f9a43902664ebf0affecteda4b4766c3cebb4018167e06b863d8e95b7274757 to < ff5e4ac8dd7be7f1faba955c5779a68571eeb0f8affecteda4b4766c3cebb4018167e06b863d8e95b7274757 to < f612ae1ab4793701caf39386fb3b7f4b3ef44e48affecteda4b4766c3cebb4018167e06b863d8e95b7274757 to < 73db1b8f2bb6725b7391e85aab41fdf592b3c0c1affected
Linux Linux
Default version status: affected
4.4affected0 to < 4.4unaffected6.1.28 to ≤ 6.1.*unaffected6.2.15 to ≤ 6.2.*unaffected6.3.2 to ≤ 6.3.*unaffected6.4 to ≤ *unaffected