This is a loose floorboard inside the building, not an unlocked front door
CVE-2026-25260 is a Qualcomm TOCTOU race in shared-buffer handling: a low-privilege local process can modify user-controlled data after a privileged component validates it, creating a window for memory corruption. NVD maps it to a broad set of Qualcomm firmware targets rather than a clean software version range, including entries such as FastConnect 6700/6900/7800 firmware, QCM6490, SC8380XP, SD865 5G, Snapdragon AR1 Gen 1, XR2 5G, and other Snapdragon/industrial/compute platform firmware packages listed in the June 2026 bulletin.
The vendor's HIGH 7.8 score is technically defensible in a lab because successful exploitation can hit confidentiality, integrity, and availability hard. In real enterprise operations, though, the chain starts with local code execution plus low privileges on the target device, which means this is usually a post-initial-access bug, not an initial entry vector; no KEV listing, no public exploitation evidence, no public PoC, and no internet-facing exposure all push it down to MEDIUM for patch-priority purposes.
4 steps from start to impact.
Land code execution on the endpoint
adb shell, a userland dropper, or any native process launcher is enough.- Attacker can execute code locally on the device
- Target uses affected Qualcomm firmware/component
- Attacker has at least low privileges
- This is not remotely reachable from the internet by itself
- Enterprise app control, MDM, and EDR commonly block arbitrary code landing on managed endpoints
- Many enterprise fleets do not run Qualcomm-based endpoints at all
Reach the vulnerable shared-buffer path
- The vulnerable service/driver path is exposed to user mode on that build
- The attacker understands the relevant IPC/driver interface
- The OEM build has not already backported a fix
- Qualcomm advisories often span many chipsets while OEM exposure differs by product build
- Reliable reachability may vary across Android, Windows on ARM, XR, or IoT implementations
- Lack of public exploit details raises reverse-engineering cost
Win the race and corrupt privileged memory
- Attacker can repeatedly trigger the vulnerable operation
- System timing permits a controllable race window
- Corruption lands in a useful code/data path
- TOCTOU memory-corruption races are often unstable across device models and firmware revisions
- Modern exploit mitigations can turn code execution attempts into simple crashes
- Success may require significant device-specific tuning
Turn corruption into local privilege escalation or denial of service
- Corruption is exploitable, not just crash-only
- Privileges gained meaningfully exceed the starting context
- The compromised device stores or brokers enterprise data
- Impact is mostly confined to the single device already running attacker code
- No evidence yet of broad, reliable in-the-wild exploitation
- Blast radius is endpoint-local unless chained with other access or lateral-movement techniques
- Perimeter controls like WAF, NGFW, or email filtering do not address the vulnerable code path directly because the exploit is local, not a network-facing parser.
- External vuln scanners will not reliably validate exploitability here; at best they can tell you a device model or firmware family may be in scope.
- MFA is good hygiene but irrelevant to this specific flaw once the attacker already has local code execution on the device.
The supporting signals.
| In-the-wild status | No confirmed active exploitation found as of 2026-06-02. Not present in the CISA KEV catalog search results. |
|---|---|
| PoC availability | No public PoC located. I found no authoritative exploit repo, vendor repro code, or public write-up describing a working race harness for this CVE. |
| EPSS | 0.00014 (~0.014%), which is extremely low and consistent with a fresh, local-only bug with no exploitation signal. A third-party CVE mirror reports roughly the 3rd percentile; treat that percentile as lower-confidence than the score itself. |
| KEV status | Not KEV-listed as of 2026-06-02. No CISA due date or federal emergency patch signal. |
| CVSS vector | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H from Qualcomm means local, low-complexity, low-privilege, no-user-interaction. The decisive limiter is still AV:L + PR:L. |
| NVD disagreement | NVD currently enriches it as 7.0 HIGH with AC:H, lower than Qualcomm's 7.8 HIGH. That mismatch is another clue that real exploit reliability is not settled. |
| Affected footprint | NVD lists multiple Qualcomm firmware/hardware CPEs rather than a neat app version range, including FastConnect 6700/6900/7800, QCM6490, SC8380XP, SD865 5G, Snapdragon AR1 Gen 1, XR2 5G, and additional Qualcomm platform firmware entries. |
| Fixed version | No explicit fixed version string surfaced in public sources I could verify. Expect fixes to arrive as OEM firmware/backport updates, not a single universal Qualcomm package you can compare across every deployment. |
| Scanning / exposure data | Internet exposure is effectively not applicable. This is not a remotely reachable network service, so Shodan/Censys-style external discovery should not materially drive prioritization; your exposure question is which endpoints contain affected Qualcomm firmware and allow untrusted code execution. |
| Disclosure | Published 2026-06-01 by Qualcomm, Inc. via the June 2026 security bulletin; weakness tagged CWE-367. |
Sources.
Why this verdict
- Downgrade: requires local code execution first —
AV:LandPR:Lmean the attacker must already be on the box/device, which is compounding downward pressure versus remote pre-auth bugs. - Downgrade: reachable population is narrower than the CVSS headline suggests — only Qualcomm-based endpoints with the affected firmware path are in scope, and many enterprise fleets will have zero meaningful exposure.
- Downgrade: no exploitation evidence — not KEV-listed, no public campaign reporting, and no public PoC found as of 2026-06-02.
- Downgrade: race-condition exploitation is often brittle — TOCTOU memory-corruption bugs can have ugly impact on paper but unstable reliability across OEM firmware builds in practice.
- Not lower because impact is still real — once an attacker has local execution, successful exploitation could materially raise privileges or break endpoint trust boundaries.
Why not higher?
This is not a remote entry point, not wormable, and not something an internet adversary can spray directly across your estate. The chain assumes prior code execution on the endpoint and then a device-specific race win, which sharply reduces both attacker reach and operational reliability.
Why not lower?
A local privilege-escalation path in chipset/firmware-adjacent code still matters because it can turn a contained user-context compromise into a much harder incident. The potential impact to a successfully compromised device is too high to dismiss as mere backlog noise.
Crowdsourced verification payload.
Run this on the target Linux/Android/embedded host or through your device-management shell, not from a remote auditor workstation. Invoke it as bash qualcomm-cve-2026-25260-check.sh with standard user rights first; root is only needed if your environment restricts access to dmesg or device metadata. The script does not prove patch state because Qualcomm/OEM fixed-build mapping is not public; it classifies hosts as VULNERABLE only when it can confidently match an affected Qualcomm platform and cannot see a vendor patch signal.
#!/usr/bin/env bash
# qualcomm-cve-2026-25260-check.sh
# Purpose: best-effort exposure check for CVE-2026-25260 on Linux/Android-style hosts.
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN
set -u
status="UNKNOWN"
reason="Insufficient platform or patch metadata"
# Collect identifiers from common locations.
model=""
compat=""
android_patch=""
kernel="$(uname -r 2>/dev/null || true)"
read_file() {
local f="$1"
if [ -r "$f" ]; then
tr '\0' ' ' < "$f" 2>/dev/null | head -c 4096
fi
}
model="$(read_file /proc/device-tree/model)"
compat="$(read_file /proc/device-tree/compatible)"
# Android properties if present
if command -v getprop >/dev/null 2>&1; then
android_patch="$(getprop ro.build.version.security_patch 2>/dev/null || true)"
[ -z "$model" ] && model="$(getprop ro.product.model 2>/dev/null || true)"
product_name="$(getprop ro.product.name 2>/dev/null || true)"
board_platform="$(getprop ro.board.platform 2>/dev/null || true)"
else
product_name=""
board_platform=""
fi
# Normalize searchable text.
blob="$(printf '%s\n%s\n%s\n%s\n%s\n' "$model" "$compat" "$product_name" "$board_platform" "$kernel" | tr '[:upper:]' '[:lower:]')"
# Affected Qualcomm identifiers observed in NVD CPEs/public record.
affected_regex='fastconnect[ _-]?6700|fastconnect[ _-]?6900|fastconnect[ _-]?7800|qcm5430|qcm6490|sc8380xp|sd865|snapdragon ar1|xr2|x2000090|x2000092|x2000094|xg101002|xg101032|xg101039|cologne|video collaboration vc3'
# Best-effort vendor patch signal.
# Qualcomm bulletins are often consumed through OEM patch trains; if Android patch level is
# at or after 2026-06-01, treat as PATCHED only as a weak signal. Otherwise, exposure remains unknown.
patch_signal=false
if [ -n "$android_patch" ]; then
case "$android_patch" in
2026-06-*|2026-07-*|2026-08-*|2026-09-*|2026-10-*|2026-11-*|2026-12-*|2027-* )
patch_signal=true
;;
esac
fi
if printf '%s' "$blob" | grep -Eiq "$affected_regex"; then
if [ "$patch_signal" = true ]; then
status="PATCHED"
reason="Affected Qualcomm platform fingerprint found, but Android security patch level is $android_patch (post-2026-06 signal)"
echo "$status - $reason"
exit 0
else
status="VULNERABLE"
reason="Affected Qualcomm platform fingerprint found and no trustworthy post-disclosure patch signal detected"
echo "$status - $reason"
exit 1
fi
fi
# If it's clearly non-Qualcomm, call it patched/not-affected for this CVE.
if printf '%s' "$blob" | grep -Eiq 'intel|amd|mediatek|exynos|broadcom|apple'; then
status="PATCHED"
reason="No Qualcomm affected-platform fingerprint detected on this host"
echo "$status - $reason"
exit 0
fi
# Fallback unknown.
echo "$status - $reason"
exit 2