Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2024-43887— net/tcp: Disable TCP-AO static key after RCU grace period

EPSS 0.01% · P1
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2024-43887

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
net/tcp: Disable TCP-AO static key after RCU grace period
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: net/tcp: Disable TCP-AO static key after RCU grace period The lifetime of TCP-AO static_key is the same as the last tcp_ao_info. On the socket destruction tcp_ao_info ceases to be with RCU grace period, while tcp-ao static branch is currently deferred destructed. The static key definition is : DEFINE_STATIC_KEY_DEFERRED_FALSE(tcp_ao_needed, HZ); which means that if RCU grace period is delayed by more than a second and tcp_ao_needed is in the process of disablement, other CPUs may yet see tcp_ao_info which atent dead, but soon-to-be. And that breaks the assumption of static_key_fast_inc_not_disabled(). See the comment near the definition: > * The caller must make sure that the static key can't get disabled while > * in this function. It doesn't patch jump labels, only adds a user to > * an already enabled static key. Originally it was introduced in commit eb8c507296f6 ("jump_label: Prevent key->enabled int overflow"), which is needed for the atomic contexts, one of which would be the creation of a full socket from a request socket. In that atomic context, it's known by the presence of the key (md5/ao) that the static branch is already enabled. So, the ref counter for that static branch is just incremented instead of holding the proper mutex. static_key_fast_inc_not_disabled() is just a helper for such usage case. But it must not be used if the static branch could get disabled in parallel as it's not protected by jump_label_mutex and as a result, races with jump_label_update() implementation details. Happened on netdev test-bot[1], so not a theoretical issue: [] jump_label: Fatal kernel bug, unexpected op at tcp_inbound_hash+0x1a7/0x870 [ffffffffa8c4e9b7] (eb 50 0f 1f 44 != 66 90 0f 1f 00)) size:2 type:1 [] ------------[ cut here ]------------ [] kernel BUG at arch/x86/kernel/jump_label.c:73! [] Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI [] CPU: 3 PID: 243 Comm: kworker/3:3 Not tainted 6.10.0-virtme #1 [] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [] Workqueue: events jump_label_update_timeout [] RIP: 0010:__jump_label_patch+0x2f6/0x350 ... [] Call Trace: [] <TASK> [] arch_jump_label_transform_queue+0x6c/0x110 [] __jump_label_update+0xef/0x350 [] __static_key_slow_dec_cpuslocked.part.0+0x3c/0x60 [] jump_label_update_timeout+0x2c/0x40 [] process_one_work+0xe3b/0x1670 [] worker_thread+0x587/0xce0 [] kthread+0x28a/0x350 [] ret_from_fork+0x31/0x70 [] ret_from_fork_asm+0x1a/0x30 [] </TASK> [] Modules linked in: veth [] ---[ end trace 0000000000000000 ]--- [] RIP: 0010:__jump_label_patch+0x2f6/0x350 [1]: https://netdev-3.bots.linux.dev/vmksft-tcp-ao-dbg/results/696681/5-connect-deny-ipv6/stderr
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未能在RCU宽限期后立即销毁。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 67fa83f7c86a86913ab9cd5a13b4bebd8d2ebb43 ~ 954d55a59b2501f4a9bd693b40ce45a1c46cb2b3 -
LinuxLinux 6.7 -

II. Public POCs for CVE-2024-43887

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-43887

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-08-26 · 39 CVEs total

CVE-2024-44934net: bridge: mcast: wait for previous gc cycles when removing port
CVE-2024-43909drm/amdgpu/pm: Fix the null pointer dereference for smu7
CVE-2024-43910bpf: add missing check_func_arg_reg_off() to prevent out-of-bounds memory accesses
CVE-2024-43911wifi: mac80211: fix NULL dereference at band check in starting tx ba session
CVE-2024-43912wifi: nl80211: disallow setting special AP channel widths
CVE-2024-43913nvme: apple: fix device reference counting
CVE-2024-43914md/raid5: avoid BUG_ON() while continue reshape after reassembling
CVE-2024-44931gpio: prevent potential speculation leaks in gpio_device_get_desc()
CVE-2024-44932idpf: fix UAFs when destroying the queues
CVE-2024-44933bnxt_en : Fix memory out-of-bounds in bnxt_fill_hw_rss_tbl()
CVE-2024-43908drm/amdgpu: Fix the null pointer dereference to ras_manager
CVE-2024-44935sctp: Fix null-ptr-deref in reuseport_add_sock().
CVE-2024-44936power: supply: rt5033: Bring back i2c_set_clientdata
CVE-2024-44937platform/x86: intel-vbtn: Protect ACPI notify handler against recursion
CVE-2024-44938jfs: Fix shift-out-of-bounds in dbDiscardAG
CVE-2024-44939jfs: fix null ptr deref in dtInsertEntry
CVE-2024-44940fou: remove warn in gue_gro_receive on unsupported protocol
CVE-2024-44941f2fs: fix to cover read extent cache access with lock
CVE-2024-44942f2fs: fix to do sanity check on F2FS_INLINE_DATA flag in inode during GC
CVE-2024-43897net: drop bad gso csum_start and offset in virtio_net_hdr

Showing top 20 of 39 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-43887

No comments yet


Leave a comment