CVE-2024-41003 Vulnerability Analysis & Exploit Details

CVE-2024-41003
Vulnerability Scoring

7.8
/10
Very High Risk

Highly exploitable, CVE-2024-41003 poses a critical security risk that could lead to severe breaches.

Attack Complexity Details

  • Attack Complexity: Low
    Exploits can be performed without significant complexity or special conditions.
  • Attack Vector: Local
    Vulnerability requires local system access.
  • Privileges Required: Low
    Some privileges are necessary to exploit the vulnerability.
  • Scope: Unchanged
    Exploit remains within the originally vulnerable component.
  • User Interaction: None
    No user interaction is necessary for exploitation.

CVE-2024-41003 Details

Status: Analyzed

Last updated: 🕢 25 Sep 2025, 19:39 UTC
Originally published on: 🕐 12 Jul 2024, 13:15 UTC

Time between publication and last update: 440 days

CVSS Release: version 3

CVSS3 Source

nvd@nist.gov

CVSS3 Type

Primary

CVSS3 Vector

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CVE-2024-41003 Vulnerability Summary

CVE-2024-41003: In the Linux kernel, the following vulnerability has been resolved: bpf: Fix reg_set_min_max corruption of fake_reg Juan reported that after doing some changes to buzzer [0] and implementing a new fuzzing strategy guided by coverage, they noticed the following in one of the probes: [...] 13: (79) r6 = *(u64 *)(r0 +0) ; R0=map_value(ks=4,vs=8) R6_w=scalar() 14: (b7) r0 = 0 ; R0_w=0 15: (b4) w0 = -1 ; R0_w=0xffffffff 16: (74) w0 >>= 1 ; R0_w=0x7fffffff 17: (5c) w6 &= w0 ; R0_w=0x7fffffff R6_w=scalar(smin=smin32=0,smax=umax=umax32=0x7fffffff,var_off=(0x0; 0x7fffffff)) 18: (44) w6 |= 2 ; R6_w=scalar(smin=umin=smin32=umin32=2,smax=umax=umax32=0x7fffffff,var_off=(0x2; 0x7ffffffd)) 19: (56) if w6 != 0x7ffffffd goto pc+1 REG INVARIANTS VIOLATION (true_reg2): range bounds violation u64=[0x7fffffff, 0x7ffffffd] s64=[0x7fffffff, 0x7ffffffd] u32=[0x7fffffff, 0x7ffffffd] s32=[0x7fffffff, 0x7ffffffd] var_off=(0x7fffffff, 0x0) REG INVARIANTS VIOLATION (false_reg1): range bounds violation u64=[0x7fffffff, 0x7ffffffd] s64=[0x7fffffff, 0x7ffffffd] u32=[0x7fffffff, 0x7ffffffd] s32=[0x7fffffff, 0x7ffffffd] var_off=(0x7fffffff, 0x0) REG INVARIANTS VIOLATION (false_reg2): const tnum out of sync with range bounds u64=[0x0, 0xffffffffffffffff] s64=[0x8000000000000000, 0x7fffffffffffffff] u32=[0x0, 0xffffffff] s32=[0x80000000, 0x7fffffff] var_off=(0x7fffffff, 0x0) 19: R6_w=0x7fffffff 20: (95) exit from 19 to 21: R0=0x7fffffff R6=scalar(smin=umin=smin32=umin32=2,smax=umax=smax32=umax32=0x7ffffffe,var_off=(0x2; 0x7ffffffd)) R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm 21: R0=0x7fffffff R6=scalar(smin=umin=smin32=umin32=2,smax=umax=smax32=umax32=0x7ffffffe,var_off=(0x2; 0x7ffffffd)) R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm 21: (14) w6 -= 2147483632 ; R6_w=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,smin32=0x80000012,smax32=14,var_off=(0x2; 0xfffffffd)) 22: (76) if w6 s>= 0xe goto pc+1 ; R6_w=scalar(smin=umin=umin32=2,smax=umax=0xffffffff,smin32=0x80000012,smax32=13,var_off=(0x2; 0xfffffffd)) 23: (95) exit from 22 to 24: R0=0x7fffffff R6_w=14 R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm 24: R0=0x7fffffff R6_w=14 R7=map_ptr(ks=4,vs=8) R9=ctx() R10=fp0 fp-24=map_ptr(ks=4,vs=8) fp-40=mmmmmmmm 24: (14) w6 -= 14 ; R6_w=0 [...] What can be seen here is a register invariant violation on line 19. After the binary-or in line 18, the verifier knows that bit 2 is set but knows nothing about the rest of the content which was loaded from a map value, meaning, range is [2,0x7fffffff] with var_off=(0x2; 0x7ffffffd). When in line 19 the verifier analyzes the branch, it splits the register states in reg_set_min_max() into the registers of the true branch (true_reg1, true_reg2) and the registers of the false branch (false_reg1, false_reg2). Since the test is w6 != 0x7ffffffd, the src_reg is a known constant. Internally, the verifier creates a "fake" register initialized as scalar to the value of 0x7ffffffd, and then passes it onto reg_set_min_max(). Now, for line 19, it is mathematically impossible to take the false branch of this program, yet the verifier analyzes it. It is impossible because the second bit of r6 will be set due to the prior or operation and the constant in the condition has that bit unset (hex(fd) == binary(1111 1101). When the verifier first analyzes the false / fall-through branch, it will compute an intersection between the var_off of r6 and of the constant. This is because the verifier creates a "fake" register initialized to the value of the constant. The intersection result later refines both registers in regs_refine_cond_op(): [...] t = tnum_intersect(tnum_subreg(reg1->var_off), tnum_subreg(reg2->var_off)); reg1->var_o ---truncated---

Assessing the Risk of CVE-2024-41003

Access Complexity Graph

The exploitability of CVE-2024-41003 depends on two key factors: attack complexity (the level of effort required to execute an exploit) and privileges required (the access level an attacker needs).

Exploitability Analysis for CVE-2024-41003

CVE-2024-41003 presents an accessible attack vector with minimal effort required. Restricting access controls and implementing security updates are critical to reducing exploitation risks.

Understanding AC and PR

A lower complexity and fewer privilege requirements make exploitation easier. Security teams should evaluate these aspects to determine the urgency of mitigation strategies, such as patch management and access control policies.

Attack Complexity (AC) measures the difficulty in executing an exploit. A high AC means that specific conditions must be met, making an attack more challenging, while a low AC means the vulnerability can be exploited with minimal effort.

Privileges Required (PR) determine the level of system access necessary for an attack. Vulnerabilities requiring no privileges are more accessible to attackers, whereas high privilege requirements limit exploitation to authorized users with elevated access.

CVSS Score Breakdown Chart

Above is the CVSS Sub-score Breakdown for CVE-2024-41003, illustrating how Base, Impact, and Exploitability factors combine to form the overall severity rating. A higher sub-score typically indicates a more severe or easier-to-exploit vulnerability.

CIA Impact Analysis

Below is the Impact Analysis for CVE-2024-41003, showing how Confidentiality, Integrity, and Availability might be affected if the vulnerability is exploited. Higher values usually signal greater potential damage.

  • Confidentiality: High
    Exploiting CVE-2024-41003 can result in unauthorized access to sensitive data, severely compromising data privacy.
  • Integrity: High
    CVE-2024-41003 could allow unauthorized modifications to data, potentially affecting system reliability and trust.
  • Availability: High
    CVE-2024-41003 can disrupt system operations, potentially causing complete denial of service (DoS).

Exploit Prediction Scoring System (EPSS)

The EPSS score estimates the probability that this vulnerability will be exploited in the near future.

EPSS Score: 0.043% (probability of exploit)

EPSS Percentile: 12.0% (lower percentile = lower relative risk)
This vulnerability is less risky than approximately 88.0% of others.

CVE-2024-41003 References

External References

CWE Common Weakness Enumeration

CWE-787

Vulnerable Configurations

  • cpe:2.3:o:linux:linux_kernel:6.8:-:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:-:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.1:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.1:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.2:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.2:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.3:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.3:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.4:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.4:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.5:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.5:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.6:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.6:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.7:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.7:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.8:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.8:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.9:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.9:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.10:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.10:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.11:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.11:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8.12:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8.12:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc3:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc4:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc5:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc6:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc6:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.8:rc7:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.8:rc7:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9:-:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9:-:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.1:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.1:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.2:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.2:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.3:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.3:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.4:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.4:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.5:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.5:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.9.6:*:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.9.6:*:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.10:rc1:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.10:rc2:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.10:rc3:*:*:*:*:*:*
  • cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*
    cpe:2.3:o:linux:linux_kernel:6.10:rc4:*:*:*:*:*:*

Protect Your Infrastructure against CVE-2024-41003: Combat Critical CVE Threats

Stay updated with real-time CVE vulnerabilities and take action to secure your systems. Enhance your cybersecurity posture with the latest threat intelligence and mitigation techniques. Develop the skills necessary to defend against CVEs and secure critical infrastructures. Join the top cybersecurity professionals safeguarding today's infrastructures.

Other 5 Recently Published CVEs Vulnerabilities

  • CVE-2025-11937 – Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in The Wikimedia Foundation Mediawiki - S...
  • CVE-2025-11857 – The XX2WP Integration Tools plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'mxp_fb2wp_display_embed' shortcode in all ve...
  • CVE-2025-11742 – The WPC Smart Wishlist for WooCommerce plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the '...
  • CVE-2025-11738 – The Media Library Assistant plugin for WordPress is vulnerable to limited file reading in all versions up to, and including, 3.29 via the mla-strea...
  • CVE-2025-62671 – Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in The Wikimedia Foundation Mediawiki - C...