Home

Description

In the Linux kernel, the following vulnerability has been resolved: netfilter: conntrack: fix using __this_cpu_add in preemptible Currently in nf_conntrack_hash_check_insert(), when it fails in nf_ct_ext_valid_pre/post(), NF_CT_STAT_INC() will be called in the preemptible context, a call trace can be triggered: BUG: using __this_cpu_add() in preemptible [00000000] code: conntrack/1636 caller is nf_conntrack_hash_check_insert+0x45/0x430 [nf_conntrack] Call Trace: <TASK> dump_stack_lvl+0x33/0x46 check_preemption_disabled+0xc3/0xf0 nf_conntrack_hash_check_insert+0x45/0x430 [nf_conntrack] ctnetlink_create_conntrack+0x3cd/0x4e0 [nf_conntrack_netlink] ctnetlink_new_conntrack+0x1c0/0x450 [nf_conntrack_netlink] nfnetlink_rcv_msg+0x277/0x2f0 [nfnetlink] netlink_rcv_skb+0x50/0x100 nfnetlink_rcv+0x65/0x144 [nfnetlink] netlink_unicast+0x1ae/0x290 netlink_sendmsg+0x257/0x4f0 sock_sendmsg+0x5f/0x70 This patch is to fix it by changing to use NF_CT_STAT_INC_ATOMIC() for nf_ct_ext_valid_pre/post() check in nf_conntrack_hash_check_insert(), as well as nf_ct_ext_valid_post() in __nf_conntrack_confirm(). Note that nf_ct_ext_valid_pre() check in __nf_conntrack_confirm() is safe to use NF_CT_STAT_INC(), as it's under local_bh_disable().

PUBLISHED Reserved 2024-08-22 | Published 2024-10-21 | Updated 2025-05-04 | Assigner Linux

Product status

Default status
unaffected

c56716c69ce1ac320432fb1ea5654196ba24d2f8 (git) before d9bf1138a5db419db13bd9fcd3a7178d6bb20f7c
affected

c56716c69ce1ac320432fb1ea5654196ba24d2f8 (git) before 9464d0b68f11a9bc768370c3260ec02b3550447b
affected

Default status
affected

5.19
affected

Any version before 5.19
unaffected

6.0.13 (semver)
unaffected

6.1 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/d9bf1138a5db419db13bd9fcd3a7178d6bb20f7c

git.kernel.org/...c/9464d0b68f11a9bc768370c3260ec02b3550447b

cve.org (CVE-2022-48974)

nvd.nist.gov (CVE-2022-48974)

Download JSON