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

Goal: 1000 CNY · Raised: 1359 CNY

100%

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

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于未能在RCU宽限期后立即销毁。

AI Predicted 6.5 Difficulty: Moderate EPSS 0.19% · P8

Possible ATT&CK Techniques 1 AI

T1068 · Exploitation for Privilege Escalation

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 67fa83f7c86a86913ab9cd5a13b4bebd8d2ebb43< 954d55a59b2501f4a9bd693b40ce45a1c46cb2b3 affected
67fa83f7c86a86913ab9cd5a13b4bebd8d2ebb43< 14ab4792ee120c022f276a7e4768f4dcb08f0cdd affected
6.7 affected
< 6.7 unaffected
6.10.5≤ 6.10.* unaffected
6.11≤ * unaffected
Get alerts for future matching vulnerabilities Log 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: CVE Program / CVE List V5
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: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
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

Vendor Product Affected Versions CPE Subscribe
Linux Linux 67fa83f7c86a86913ab9cd5a13b4bebd8d2ebb43 ~ 954d55a59b2501f4a9bd693b40ce45a1c46cb2b3 -
Linux Linux 6.7 -

II. Public POCs for CVE-2024-43887

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-43887

请登录查看更多情报信息。

Other References for CVE-2024-43887 (2)

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

CVE-2024-44942 7.8 HIGH f2fs: fix to do sanity check on F2FS_INLINE_DATA flag in inode during GC
CVE-2024-43910 7.8 HIGH bpf: add missing check_func_arg_reg_off() to prevent out-of-bounds memory accesses
CVE-2024-44934 7.8 HIGH net: bridge: mcast: wait for previous gc cycles when removing port
CVE-2024-43897 7.8 HIGH net: drop bad gso csum_start and offset in virtio_net_hdr
CVE-2024-44939 7.8 HIGH jfs: fix null ptr deref in dtInsertEntry
CVE-2024-43892 7.8 HIGH memcg: protect concurrent access to mem_cgroup_idr
CVE-2024-43891 7.8 HIGH tracing: Have format file honor EVENT_FILE_FL_FREED
CVE-2024-44941 7.8 HIGH f2fs: fix to cover read extent cache access with lock
CVE-2024-43888 7.8 HIGH mm: list_lru: fix UAF for memory cgroup
CVE-2024-44940 7.5 HIGH fou: remove warn in gue_gro_receive on unsupported protocol
CVE-2024-44933 7.3 HIGH bnxt_en : Fix memory out-of-bounds in bnxt_fill_hw_rss_tbl()
CVE-2024-43913 7.0 HIGH nvme: apple: fix device reference counting
CVE-2024-44938 jfs: Fix shift-out-of-bounds in dbDiscardAG
CVE-2024-44937 platform/x86: intel-vbtn: Protect ACPI notify handler against recursion
CVE-2024-44936 power: supply: rt5033: Bring back i2c_set_clientdata
CVE-2024-44935 sctp: Fix null-ptr-deref in reuseport_add_sock().
CVE-2024-44932 idpf: fix UAFs when destroying the queues
CVE-2024-44931 gpio: prevent potential speculation leaks in gpio_device_get_desc()
CVE-2024-43914 md/raid5: avoid BUG_ON() while continue reshape after reassembling
CVE-2024-43912 wifi: nl80211: disallow setting special AP channel widths

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