CVE-2023-53635 PUBLISHED

netfilter: conntrack: fix wrong ct->timeout value

Assigner: Linux
Reserved: 07.10.2025 Published: 07.10.2025 Updated: 07.10.2025

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from a4b4766c3cebb4018167e06b863d8e95b7274757 to 80c5ba0078e20d926d11d0778f9a43902664ebf0 (excl.)
  • affected from a4b4766c3cebb4018167e06b863d8e95b7274757 to ff5e4ac8dd7be7f1faba955c5779a68571eeb0f8 (excl.)
  • affected from a4b4766c3cebb4018167e06b863d8e95b7274757 to f612ae1ab4793701caf39386fb3b7f4b3ef44e48 (excl.)
  • affected from a4b4766c3cebb4018167e06b863d8e95b7274757 to 73db1b8f2bb6725b7391e85aab41fdf592b3c0c1 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.4 is affected
  • unaffected from 0 to 4.4 (excl.)
  • unaffected from 6.1.28 to 6.1.* (incl.)
  • unaffected from 6.2.15 to 6.2.* (incl.)
  • unaffected from 6.3.2 to 6.3.* (incl.)
  • unaffected from 6.4 to * (incl.)

References