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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-46828— sched: sch_cake: fix bulk flow accounting logic for host fairness

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存在安全漏洞,该漏洞源于允许数组越界。

CVSS 7.1 · High EPSS 0.25% · P15

Possible ATT&CK Techniques 1 AI

T1203 · Exploitation for Client Execution

Affected Version Matrix 16

VendorProduct Version RangeStatus
Linux Linux 712639929912c5eefb09facccb48d55b3f72c9f8< 4a4eeefa514db570be025ab46d779af180e2c9bb affected
712639929912c5eefb09facccb48d55b3f72c9f8< 7725152b54d295b7da5e34c2f419539b30d017bd affected
712639929912c5eefb09facccb48d55b3f72c9f8< cde71a5677971f4f1b69b25e854891dbe78066a4 affected
712639929912c5eefb09facccb48d55b3f72c9f8< 549e407569e08459d16122341d332cb508024094 affected
712639929912c5eefb09facccb48d55b3f72c9f8< d4a9039a7b3d8005b90c7b1a55a306444f0e5447 affected
712639929912c5eefb09facccb48d55b3f72c9f8< d7c01c0714c04431b5e18cf17a9ea68a553d1c3c affected
712639929912c5eefb09facccb48d55b3f72c9f8< 546ea84d07e3e324644025e2aae2d12ea4c5896e affected
5.1 affected
… +8 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-46828

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
sched: sch_cake: fix bulk flow accounting logic for host fairness
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: sched: sch_cake: fix bulk flow accounting logic for host fairness In sch_cake, we keep track of the count of active bulk flows per host, when running in dst/src host fairness mode, which is used as the round-robin weight when iterating through flows. The count of active bulk flows is updated whenever a flow changes state. This has a peculiar interaction with the hash collision handling: when a hash collision occurs (after the set-associative hashing), the state of the hash bucket is simply updated to match the new packet that collided, and if host fairness is enabled, that also means assigning new per-host state to the flow. For this reason, the bulk flow counters of the host(s) assigned to the flow are decremented, before new state is assigned (and the counters, which may not belong to the same host anymore, are incremented again). Back when this code was introduced, the host fairness mode was always enabled, so the decrement was unconditional. When the configuration flags were introduced the *increment* was made conditional, but the *decrement* was not. Which of course can lead to a spurious decrement (and associated wrap-around to U16_MAX). AFAICT, when host fairness is disabled, the decrement and wrap-around happens as soon as a hash collision occurs (which is not that common in itself, due to the set-associative hashing). However, in most cases this is harmless, as the value is only used when host fairness mode is enabled. So in order to trigger an array overflow, sch_cake has to first be configured with host fairness disabled, and while running in this mode, a hash collision has to occur to cause the overflow. Then, the qdisc has to be reconfigured to enable host fairness, which leads to the array out-of-bounds because the wrapped-around value is retained and used as an array index. It seems that syzbot managed to trigger this, which is quite impressive in its own right. This patch fixes the issue by introducing the same conditional check on decrement as is used on increment. The original bug predates the upstreaming of cake, but the commit listed in the Fixes tag touched that code, meaning that this patch won't apply before that.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
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存在安全漏洞,该漏洞源于允许数组越界。
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 712639929912c5eefb09facccb48d55b3f72c9f8 ~ 4a4eeefa514db570be025ab46d779af180e2c9bb -
Linux Linux 5.1 -

II. Public POCs for CVE-2024-46828

# 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-46828

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

Other References for CVE-2024-46828 (7)

Same Patch Batch · Linux · 2024-09-27 · 66 CVEs total

CVE-2024-46865 9.8 CRITICAL fou: fix initialization of grc
CVE-2024-46831 8.4 HIGH net: microchip: vcap: Fix use-after-free error in kunit test
CVE-2024-46823 8.4 HIGH kunit/overflow: Fix UB in overflow_allocation_test
CVE-2024-46858 8.1 HIGH mptcp: pm: Fix uaf in __timer_delete_sync
CVE-2024-46862 8.0 HIGH ASoC: Intel: soc-acpi-intel-mtl-match: add missing empty item
CVE-2024-46845 7.8 HIGH tracing/timerlat: Only clear timer if a kthread exists
CVE-2024-46866 7.8 HIGH drm/xe/client: add missing bo locking in show_meminfo()
CVE-2024-46816 7.8 HIGH drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links
CVE-2024-46813 7.8 HIGH drm/amd/display: Check link_index before accessing dc->links[]
CVE-2024-46812 7.8 HIGH drm/amd/display: Skip inactive planes within ModeSupportAndSystemConfiguration
CVE-2024-46818 7.8 HIGH drm/amd/display: Check gpio_id before used as array index
CVE-2024-46859 7.8 HIGH platform/x86: panasonic-laptop: Fix SINF array out of bounds accesses
CVE-2024-46830 7.8 HIGH KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS
CVE-2024-46852 7.8 HIGH dma-buf: heaps: Fix off-by-one in CMA heap fault handler
CVE-2024-46850 7.8 HIGH drm/amd/display: Avoid race between dcn35_set_drr() and dc_state_destruct()
CVE-2024-46834 7.8 HIGH ethtool: fail closed if we can't get max channel used in indirection tables
CVE-2024-46847 7.8 HIGH mm: vmalloc: ensure vmap_block is initialised before adding to queue
CVE-2024-46842 7.8 HIGH scsi: lpfc: Handle mailbox timeouts in lpfc_get_sfp_info
CVE-2024-46803 7.8 HIGH drm/amdkfd: Check debug trap enable before write dbg_ev_file
CVE-2024-46855 7.5 HIGH netfilter: nft_socket: fix sk refcount leaks

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

IV. Related Vulnerabilities

V. Comments for CVE-2024-46828

No comments yet


Leave a comment