☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-1633

CVE-2024-1633 Integer Overflow in Arm
📅 PUBLISHED: 2024-02-19 16:42 UTC 🔄 UPDATED: 2026-09-23 20:37 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.14%
👁️
0.14% probability
3.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United Kingdom License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
2.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-1633 is a low-severity (CVSS 2.0) integer overflow vulnerability in the Arm Trusted Firmware (TF-A) bootloader, specifically in the bl2 (second stage bootloader) component. The flaw resides in the way bl2 processes image metadata from certificates during the secure boot chain. By crafting a malicious certificate with an oversized image length (a 32-bit unsigned integer), an attacker can trigger an integer overflow, bypassing memory range restrictions and writing data out of buffer bounds. This could lead to a bypass of the secure boot mechanism, allowing unauthorized code execution at a highly privileged level.

The vulnerability affects a specific git commit range starting from c2f286820471ed276c57e603762bd831873e5a17. No public exploit or patch is currently available. The EPSS score is 0.0%, indicating very low exploitation activity in the wild.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects the Arm Trusted Firmware (TF-A) source code, which is typically integrated into firmware builds for ARM-based devices (e.g., mobile SoCs, embedded systems, servers). Organizations using TF-A in their supply chain should audit their firmware build processes and verify the version of bl2 code.

CVSS Breakdown & Threat Level

  • CVSS Score: 2.0 (Low)
  • Vector: CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N
  • Attack Vector (AV): Local (requires physical or local access to the device)
  • Attack Complexity (AC): Low
  • Privileges Required (PR): High (attacker must already have high privileges or physical access)
  • User Interaction (UI): None
  • Scope (S): Unchanged
  • Confidentiality (C): None
  • Integrity (I): Low (can bypass secure boot, but not directly modify data)
  • Availability (A): None

Threat Level: Low. Exploitation requires high privileges or physical access, and the impact is limited to integrity bypass of secure boot. However, in high-security environments (e.g., secure enclaves, IoT gateways), this could be critical.

Deep Dive & Mechanics

The vulnerability exists in the bl2 bootloader stage of Arm Trusted Firmware. During secure boot, bl2 iterates over a table called bl2_mem_params_descs, which contains metadata for each image to be loaded (e.g., BL31, BL32, BL33). For each image, bl2 reads the image length and destination address from the image's certificate.

The issue is in the way the image length is read and used. The length is stored as a 32-bit unsigned integer. When bl2 calculates the end address of the image (e.g., base + length), it performs arithmetic on 32-bit values. If the attacker provides a crafted certificate with a very large length value (close to 0xFFFFFFFF), the addition can overflow, wrapping around to a small value. This bypasses the intended memory range check, allowing bl2 to write data to an arbitrary memory location outside the intended buffer.

Root Cause: The code uses 32-bit unsigned integer arithmetic without proper overflow checks. The vulnerable code path is in the load_auth_image or similar function that processes the certificate.

Attack Scenario:

  1. Attacker gains physical access to the device or has high privileges (e.g., can modify firmware update packages).
  2. Attacker crafts a malicious certificate for one of the boot images (e.g., BL31) with an image length of 0xFFFFFFFF (or a value that causes overflow).
  3. During secure boot, bl2 reads the length, calculates the end address, and due to overflow, writes the image data to an unintended memory region (e.g., overwriting critical boot code or data).
  4. This bypasses the secure boot integrity check, allowing the attacker to execute arbitrary code at the highest privilege level (EL3).

Vulnerable vs. Patched Code

Vulnerable Code (conceptual):

// In bl2_main.c or similar
uint32_t image_len = read_certificate_length(cert);
uint32_t dest_addr = read_certificate_dest(cert);
uint32_t end_addr = dest_addr + image_len; // Integer overflow possible

if (end_addr > MAX_MEM) {
    // This check can be bypassed if overflow occurs
    return ERROR;
}
memcpy(dest_addr, image_data, image_len); // Buffer overflow

Patched Code (hypothetical):

uint32_t image_len = read_certificate_length(cert);
uint32_t dest_addr = read_certificate_dest(cert);

// Check for overflow before addition
if (image_len > UINT32_MAX - dest_addr) {
    return ERROR;
}
uint32_t end_addr = dest_addr + image_len;

if (end_addr > MAX_MEM) {
    return ERROR;
}
memcpy(dest_addr, image_data, image_len);

The patch adds an overflow check before the addition. Since no official patch is available, this is a recommended fix.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Physical access to the target device OR ability to modify firmware update packages.
  • Knowledge of the target's boot chain and certificate format.
  • Ability to generate a malicious certificate with a crafted image length.

Lab Setup:

  1. Obtain a device running Arm Trusted Firmware with the vulnerable commit (e.g., QEMU emulation of an ARM platform).
  2. Build a custom firmware image with a malicious certificate.
  3. Use a JTAG debugger or UART to observe boot behavior.

Exploitation Steps:

  1. Identify the certificate structure for the target image (e.g., BL31).
  2. Modify the image length field in the certificate to 0xFFFFFFFF (or a value that causes overflow to a desired address).
  3. Re-sign the certificate if necessary (may require private keys).
  4. Flash the modified firmware to the device.
  5. Boot the device. The overflow will cause bl2 to write the image data to an unintended memory region, potentially overwriting the next boot stage or secure monitor code.
  6. If successful, the attacker can execute arbitrary code at EL3.

Note: No public exploit code is available. This is a theoretical exploitation path.

Blue Team (Detection & Hardening)

Detection:

  • Monitor for unexpected memory writes during boot (e.g., using hardware watchpoints).
  • Log certificate parsing errors or memory range violations in bootloader logs.
  • Use static analysis tools to detect integer overflow in bootloader code.

Hardening:

  • Apply the patch described above (add overflow check).
  • Use 64-bit arithmetic for memory calculations if possible.
  • Implement certificate validation with strict bounds checking.
  • Enable hardware memory protection (e.g., MPU/MMU) during boot stages.

Indicators of Compromise (IOCs)

  • File Hashes: No specific hashes available.
  • Network Indicators: None (local vulnerability).
  • Behavioral:
    • Unexpected memory writes during boot.
    • Boot failure or unexpected behavior after firmware update.
    • Modified certificate files with abnormally large length fields.
  • Registry/Config: Modified firmware update packages with tampered certificates.

Detection Engineering

YARA Rule

rule CVE_2024_1633_Integer_Overflow {
    meta:
        description = "Detects potential integer overflow in bl2 certificate parsing"
        author = "Valters IT"
        date = "2024-01-01"
        cve = "CVE-2024-1633"
    strings:
        $overflow_pattern = { 8? ?? ?? ?? 8? ?? ?? ?? 0? ?? ?? ?? 1? ?? ?? ?? } // Generic add with potential overflow
        $cert_len_field = { ?? ?? ?? ?? 00 00 00 00 } // Placeholder for length field
    condition:
        $overflow_pattern and #cert_len_field > 0
}

Sigma Rule

title: CVE-2024-1633 - Integer Overflow in Arm TF-A bl2
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects potential exploitation of integer overflow in bl2 certificate parsing
author: Valters IT
logsource:
    product: linux
    service: syslog
detection:
    selection:
        - "bl2: certificate length overflow detected"
        - "bl2: memory range violation"
    condition: selection
falsepositives:
    - Legitimate firmware updates with large images
level: low

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2024-1633 - Potential Integer Overflow in bl2 Certificate"; flow:to_server; content:"|00 00 00 00|"; distance:0; within:4; content:"|FF FF FF FF|"; distance:0; within:4; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Patch: Apply the overflow check as described in the "Vulnerable vs. Patched Code" section. Since no official patch exists, this must be done manually.
  2. Version Control: Update to a commit after the vulnerable range (if available) or apply the fix locally.
  3. Certificate Validation: Implement strict validation of certificate fields (length, destination) before use.

Long-term Mitigations:

  • Use 64-bit arithmetic for memory calculations.
  • Enable hardware memory protection (MPU/MMU) during boot.
  • Implement code signing and integrity checks for all boot stages.
  • Conduct regular security audits of bootloader code.

Workarounds:

  • If patching is not possible, restrict physical access to devices.
  • Use secure boot with hardware root of trust (e.g., OTP fuses) to prevent certificate tampering.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-1633/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.