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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

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

EPSS 0.01% · P3
Get alerts for future matching vulnerabilitiesLog 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: NVD (National Vulnerability Database)
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: 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存在安全漏洞,该漏洞源于允许数组越界。
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 712639929912c5eefb09facccb48d55b3f72c9f8 ~ 4a4eeefa514db570be025ab46d779af180e2c9bb -
LinuxLinux 5.1 -

II. Public POCs for CVE-2024-46828

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-46828

登录查看更多情报信息。

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

CVE-2024-46846spi: rockchip: Resolve unbalanced runtime PM / system PM handling
CVE-2024-46865fou: fix initialization of grc
CVE-2024-46864x86/hyperv: fix kexec crash due to VP assist page corruption
CVE-2024-46863ASoC: Intel: soc-acpi-intel-lnl-match: add missing empty item
CVE-2024-46851drm/amd/display: Avoid race between dcn10_set_drr() and dc_state_destruct()
CVE-2024-46852dma-buf: heaps: Fix off-by-one in CMA heap fault handler
CVE-2024-46850drm/amd/display: Avoid race between dcn35_set_drr() and dc_state_destruct()
CVE-2024-46849ASoC: meson: axg-card: fix 'use-after-free'
CVE-2024-46848perf/x86/intel: Limit the period on Haswell
CVE-2024-46847mm: vmalloc: ensure vmap_block is initialised before adding to queue
CVE-2024-46853spi: nxp-fspi: fix the KASAN report out-of-bounds bug
CVE-2024-46844um: line: always fill *error_out in setup_one_line()
CVE-2024-46845tracing/timerlat: Only clear timer if a kthread exists
CVE-2024-46843scsi: ufs: core: Remove SCSI host only if added
CVE-2024-46841btrfs: don't BUG_ON on ENOMEM from btrfs_lookup_extent_info() in walk_down_proc()
CVE-2024-46842scsi: lpfc: Handle mailbox timeouts in lpfc_get_sfp_info
CVE-2024-46840btrfs: clean up our handling of refs == 0 in snapshot delete
CVE-2024-46838userfaultfd: don't BUG_ON() if khugepaged yanks our page table
CVE-2024-46837drm/panthor: Restrict high priorities on group_create
CVE-2024-46835drm/amdgpu: Fix smatch static checker warning

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

IV. Related Vulnerabilities

V. Comments for CVE-2024-46828

No comments yet


Leave a comment