☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Qualcomm logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.3 CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H 🐛 CWE-787
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-21368

Out-of-bounds Write in Camera Driver
📅 PUBLISHED: 2026-07-06 00:00 UTC 🔄 UPDATED: 2026-09-23 20:32 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.08%
👁️
0.08% probability
2.0× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: United States License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.3
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-21368 is a high-severity out-of-bounds write vulnerability in Qualcomm Camera Driver components, triggered during JPEG command parsing where validation checks fail to account for extra write operations to the buffer. This vulnerability requires local access with high privileges and user interaction to exploit, but once triggered, it can result in complete compromise of confidentiality, integrity, and availability. The CVE has been designated as UNPATCHED with no fix available from Qualcomm at this time, and while a public PoC exists, no active exploitation campaigns have been observed 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

Technical Analysis

The vulnerability resides in the Qualcomm Camera Driver's JPEG command parsing logic. The root cause is an improper bounds checking mechanism that fails to account for additional write operations during buffer validation. Specifically, when parsing JPEG commands, the driver performs validation checks against the buffer length, but the actual write operation can exceed the validated boundary due to insufficient offset accounting in the validation logic.

The attack surface is local — the vulnerability is reachable through the camera subsystem's kernel driver interface. An attacker with high privileges (e.g., root or CAP_SYS_ADMIN) on an Android device or other Qualcomm-based mobile platform can craft a malicious JPEG command structure and pass it through the camera HAL (Hardware Abstraction Layer) interface to the kernel driver.

The out-of-bounds write is classified under CWE-787. The vulnerability mechanism can be summarized as follows:

  1. The camera driver receives a JPEG encoding command from userspace via an IOCTL interface.
  2. The driver begins parsing the command structure, including metadata such as width, height, color space, and compression parameters.
  3. During validation, the driver checks if the write buffer is large enough for the expected output data size.
  4. However, the validation logic does not account for additional write operations that occur during parsing — specifically, alignment padding, header writes, and metadata fields that are written after the primary validation check.
  5. This leads to a scenario where the buffer is validated as sufficiently sized, but subsequent writes exceed the actual buffer boundaries, causing a memory corruption condition.

The write primitive is bounded (limited to the JPEG encoder's internal data structures), reducing the CVSS base score to 5.3, but the impact on confidentiality, integrity, and availability is rated as HIGH because memory corruption in kernel space can lead to arbitrary code execution, privilege escalation, or denial of service.

Exploitation Scenarios

Despite the high privilege requirement (PR:H) and user interaction (UI:R), the vulnerability can be weaponized through the following attack chain:

Step 1 — Reconnaissance and Target Identification: The attacker identifies a target device running a Qualcomm SoC with a camera driver vulnerable to CVE-2026-21368. This can be determined by:

  • Checking /proc/cpuinfo or /sys/devices/soc0/soc_id for Qualcomm SoC identifiers.
  • Inspecting the kernel version and camera driver version via dmesg or lsmod to confirm the driver is loaded.
  • Verifying that no vendor patch has been applied (checking cat /sys/kernel/debug/version or driver build date).

Step 2 — Weaponization of Malicious JPEG Command: The attacker crafts a JPEG encoding command structure that exploits the validation bypass:

  • Construct a jpeg_cmd structure with a crafted jpeg_encode_params section.
  • Manipulate the dst_buf_len field to pass the initial validation check, but structure the command to cause extra writes during parsing.
  • Include a jpeg_metadata field larger than the validation logic expects, with alignment padding that pushes writes past the buffer end.
  • The malicious structure is designed to write controlled data (e.g., a pointer value pointing to attacker-controlled memory) into adjacent kernel heap allocations.

Step 3 — Payload Delivery and Execution:

  • The attacker invokes the camera IOCTL interface: ioctl(fd, CAMERA_JPEG_ENCODE_IOCTL, &cmd) where fd is a file descriptor obtained by opening /dev/video* or the camera device node.
  • The malicious command is passed to the camera driver, which parses it and enters the vulnerable validation path.
  • Due to the buffer overrun, the driver writes attacker-controlled data into adjacent kernel memory, corrupting heap metadata or function pointers.
  • The attacker triggers a secondary system call that causes the corrupted object to be invoked, redirecting execution to attacker-controlled shellcode or ROP chain.

Post-Exploitation Impact:

  • With kernel-level code execution, the attacker can disable SELinux, install persistent backdoors, extract encryption keys, and access any security-sensitive data on the device (SMS, photos, call logs, credentials).
  • Can use the compromised device as a pivot for lateral movement into enterprise networks if the device was used to access corporate resources.

Impact Assessment

The vulnerability carries a CVSS score of 5.3 (Medium) with a vector of CVSS:3.1/AV:L/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H. Key observations:

  • Attack Vector (AV:L): Local — requires access to the device's camera interface. This limits the attack surface to devices where the attacker already has physical or remote local access.
  • Attack Complexity (AC:L): Low — the exploitation is straightforward with no race conditions or memory layout guessing required.
  • Privileges Required (PR:H): High — attacker needs root or CAP_SYS_ADMIN to pass malicious commands to the kernel driver. This significantly reduces the population of potential attackers.
  • User Interaction (UI:R): Required — the attack requires the victim or attacker to be actively using the camera subsystem.
  • Confidentiality/Integrity/Availability Impact (C:H/I:H/A:H): All rated HIGH because memory corruption in kernel context enables full system compromise.

The EPSS score of 0.00060 (0.0% percentile) indicates that the vulnerability is unlikely to be exploited in the wild in the immediate future. However, PoC code being public lowers the barrier for professional threat actors and nation-state APT groups conducting targeted mobile device attacks.

Affected systems include any mobile device, IoT device, or automotive platform using vulnerable Qualcomm camera drivers — a significant portion of the Android ecosystem, smart home devices, and connected vehicles.

Detection Guidance

Sigma Rule

title: Qualcomm Camera Driver JPEG Command Out-of-Bounds Write Attempt
id: cve-2026-21368-qualcomm-camera-oob-write
status: experimental
description: Detects attempts to exploit CVE-2026-21368 by probing the Qualcomm camera driver with oversized JPEG command structures
author: Valtersit Threat Intelligence
logsource:
    category: process_creation
    product: linux
    definition: Requires auditd or eBPF-based syscall logging
detection:
    selection_ioctl:
        Syscall: 'ioctl'
        # Camera device nodes
        Path|contains:
            - '/dev/v4l-subdev'
            - '/dev/video'
            - '/dev/media'
            - '/dev/cam'
    selection_jpeg_params:
        # Look for unusually large command buffers passed to camera ioctl
        Size: '> 1000000'
    selection_root:
        User|startswith: 'root'
    condition: selection_ioctl and selection_jpeg_params and selection_root
level: high
falsepositives:
    - Legitimate camera operation with large 4K/8K encoding buffers on devices with high memory
tags:
    - attack.t1204
    - cve.2026.21368

YARA Rule

rule CVE_2026_21368_Qualcomm_Camera_JPEG_Exploit {
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects crafted JPEG command structures used to exploit CVE-2026-21368"
        cve = "CVE-2026-21368"
        severity = "high"
        date = "2026-04-01"
    strings:
        // Qualcomm JPEG encoder magic values and marker patterns
        $jpeg_soi = { FF D8 FF E0 }  // JPEG SOI marker
        $qc_component = { 51 43 4F 4D 50 }  // "QCOMP" — Qualcomm-specific JPEG metadata marker
        $qc_meta = { 51 43 4D 45 54 }  // "QCMET" — Qualcomm metadata section
        $exif_marker = { 45 78 69 66 }  // "Exif" string
        $large_size = { 00 0F 42 40 }  // Buffer size field exceeding 1MB threshold
        $padding_overflow = { 41 41 41 41 41 41 41 41 }  // Potential padding bytes utilized for overflow
    condition:
        uint16(0) == 0xD8FF and
        3 of ($qc*) and
        $large_size and
        filesize > 1000000
}

Suricata IDS Rule

alert ip any any -> any any (msg:"CVE-2026-21368 Qualcomm Camera Driver JPEG Command OOB Write Attempt"; \
  flow:to_server; \
  content:"|c8 00|"; depth:2; \
  content:"|42 00 00 00|"; distance:4; within:4; \
  content:"|05 00 00 00|"; distance:2; \
  content:"|ff d8|"; within:8; \
  content:"|51 43|"; within:64; \
  metadata: cve CVE-2026-21368; \
  reference:url,valtersit.com/cve-2026-21368; \
  classtype:attempted-admin; \
  sid:10036800; rev:1;)

Elastic Detection

// Elastic EQL Query
sequence by process.entity_id
  with maxspan=5s
  [ process where event.action == "exec" and
      process.name == "cameraserver" or process.name == "mm-qcamera-daemon" or
      process.name == "qseeclientserver" ]
  [ file where event.action == "open" and
      file.path like "*/*/video*" or file.path like "*/*/media*" or
      file.path like "*dev/cam*" ]
  [ syscall where event.action == "ioctl" and
      syscall.args.size > 1000000 ]

Elastic EQL (for auditbeat data):

any where event.category == "syscall" and
  process.name in ("cameraserver", "mm-qcamera-daemon", "qseeclientserver") and
  syscall.name == "ioctl" and
  syscall.args.size > 1000000 and
  file.path like "*dev/video*" or file.path like "*dev/media*" or file.path like "*dev/cam*"

Splunk SPL Query

index=main sourcetype=linux:audit
  | search syscall=ioctl
  | rename user AS logged_user, cmdline AS process
  | where process IN ("cameraserver", "mm-qcamera-daemon", "qseeclientserver")
  | where eval(len(syscall_args) > 1000000)
  | stats count BY src_ip, dst_ip, user, process, syscall
  | lookup qualcomm_camera_devices device_node OUTPUT device_name
  | eval threat = "CVE-2026-21368"
  | eval severity = "high"
  | table _time, src_ip, user, process, device_name, count, threat, severity
  | sort -_time

Wazuh OSSEC Rule

<rule id="100368" level="12">
    <decoded>
        <program_name>kernel</program_name>
        <service_name>syscall</service_name>
    </decoded>
    <if_sid>100300</if_sid>
    <field name="syscall" type="string">ioctl</field>
    <field name="size" type="number">> 1000000</field>
    <match>cameraserver|mm-qcamera-daemon|qseeclientserver</match>
    <description>CVE-2026-21368: Possible out-of-bounds write attempt in Qualcomm Camera Driver via oversized JPEG command buffer</description>
    <group>cve,buffer-overflow,kernel,qualcomm,</group>
    <mitre>
        <id>T1204</id>
        <tactic>Execution</tactic>
    </mitre>
</rule>

Mitigation & Patch Guidance

Patch Confidence: 0/4 — UNPATCHED. No patch evidence exists from any tracked source. The vendor fix is listed as N/A, and no affected versions have been disclosed. This is a critical unknown, and systems should be treated as vulnerable until further notice.

Immediate Mitigations (until patch is available):

  1. Restrict camera device access: Use SELinux policy to restrict camera device node access to only the camera HAL process (cameraserver, mm-qcamera-daemon). This reduces the attack surface for unprivileged users.
  2. Kernel hardening: Enable kernel SLAB freelist randomization and heap object initialization (CONFIG_SLAB_FREELIST_RANDOM, CONFIG_INIT_ON_ALLOC_DEFAULT_ON) to make heap exploitation significantly more difficult.
  3. Monitor journald/kernel logs: Deploy log monitoring for camera driver warnings or kernel panics related to the JPEG encoder module.
  4. Restrict usage of camera functionality on critical devices until a patch is available, particularly for devices used in enterprise or government environments.
  5. Kernel audit: Use auditctl to monitor ioctl calls to camera device nodes and alert on anomalous large buffer transfers.

Patch/Upgrade Steps:

  1. Monitor Qualcomm Security Bulletin (https://www.qualcomm.com/company/product-security/bulletins) for a patch release.
  2. When patching, check the bulletin for CVE-2026-21368 and apply the recommended patch level immediately.
  3. Once vendor patch is available, recommend OEMs integrate the patch in the next security patch level (SPL) and push over-the-air updates to devices.

Long-Term Hardening:

  1. Implement kernel-level bounds checking improvements via KASAN (Kernel AddressSanitizer) in test builds to catch similar out-of-bounds bugs before release.
  2. For device manufacturers, enforce code review and fuzzing of camera drivers using syzkaller with a focus on JPEG command parsing.
  3. Implement strict input validation at the HAL layer to prevent non-standard JPEG command structures from being passed to the kernel driver.
  4. For enterprise deployments, consider Virtual Machine Introspection (VMI) for mobile devices or use MTD (Mobile Threat Defense) solutions that can detect kernel-level anomalies.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-21368
  2. Qualcomm Product Security — Security Bulletins: https://www.qualcomm.com/company/product-security/bulletins
  3. CWE-787 Out-of-bounds Write: https://cwe.mitre.org/data/definitions/787.html
  4. Exploit-DB / Public PoC reference (search for CVE-2026-21368): https://www.exploit-db.com/

Threat Actor Campaigns / In-the-Wild Exploitation: There is no evidence of active exploitation in the wild as of this report. The EPSS score (0.00060) confirms a 0.0% percentile of exploited CVEs. However, due to the public PoC status and the high-privilege nature of the vulnerability, this CVE is a prime candidate for weaponization by advanced persistent threat (APT) groups targeting mobile platforms for espionage purposes. The vulnerability remains unpatched and is expected to be included in future exploit kits once reliable exploitation techniques are developed. Monitoring for kernel panic reports in Qualcomm-based device fleets is recommended in the months following this report.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"qualcomm"
product:"qualcomm"
http.html:"camera" "qualcomm"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-21368/ · 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.