← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-0116 · CWE-787 · Disclosed 2026-03-10

In __mfc_handle_released_buf of mfc_core_isr

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a sharp shard in one phone’s video engine, not a skeleton key for the whole internet

CVE-2026-0116 is an out-of-bounds write in __mfc_handle_released_buf inside the Exynos/Tensor MFC media driver path. The public fix shows the bug is a missing guard around dec->refcnt before writing into dec->ref_buf[...], which means malformed buffer-release state can push writes past the intended array bounds. Google published it on 2026-03-10; the Pixel bulletin places it in the MFC subcomponent and says security patch level 2026-03-05 or later addresses it on supported Pixel devices.

The vendor-style 9.8/AV:N/UI:N story overstates enterprise reality. This is not an internet-facing daemon you can mass-scan and pop from anywhere; it is a device-side media-driver bug in a specific hardware codec path, on a narrower population than 'all Android'. That said, because it sits below the app sandbox and could plausibly be driven by crafted media on affected phones, it still deserves a HIGH bucket rather than a casual backlog entry.

"Serious mobile kernel bug, but the real-world blast radius is narrower than the 9.8 label suggests."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land crafted media on the device

The attacker needs content that reaches the hardware media decode/encode path rather than staying in software parsing. There is no public weaponized exploit visible in the sources I checked; the most useful public building block is the AOSP patch diff showing the exact refcount guard that was missing. In practice this means a custom exploit chain, not a copy-paste Metasploit module.
Conditions required:
  • Target is an affected Pixel/Android build with the vulnerable MFC driver
  • Attacker can deliver media to an app or service path that invokes hardware codec handling
  • The receiving app does not fully neutralize the payload before the kernel driver sees it
Where this breaks in practice:
  • Population is limited to devices carrying this MFC implementation, not generic servers or desktops
  • Modern apps may transcode, sanitize, or reject malformed media before it hits the vulnerable path
  • No public PoC means exploit development cost is non-trivial
Detection/coverage: Traditional network scanners will miss this entirely. Mobile EDR and crash telemetry may see media-service instability, but signature coverage is likely thin until an exploit is public.
STEP 02

Reach the MFC buffer-release logic

The public fix for bug 321712082 adds repeated checks that dec->refcnt < MFC_MAX_BUFFERS - 1 before incrementing and storing into dec->ref_buf[...]. That is the tell: exploitation requires steering the MFC state machine into repeated released-buffer handling until the reference-buffer bookkeeping walks out of bounds. Weaponized tooling here would be a custom Exynos/Tensor MFC harness built from the public diff and codec-driver behavior, not an off-the-shelf framework.
Conditions required:
  • The app/browser/messaging flow must invoke the affected MFC routines
  • The crafted input must survive userspace processing and reach kernel driver state transitions
  • The device must use the vulnerable binary driver before the March 2026 patch level
Where this breaks in practice:
  • Driver-state exploitation is much harder than triggering a userland parser crash
  • The MFC path is hardware- and vendor-specific
  • Sandboxed app contexts still need a reliable path into the vulnerable kernel code
Detection/coverage: Code-scanning/SBOM tools generally won't see this if they don't inventory device firmware and patch level. Detection is mainly through patch-level auditing, kernel crash reports, and forensic review of media-service anomalies.
STEP 03

Convert overwrite into code execution

An out-of-bounds write in a kernel-adjacent media driver is dangerous because it can corrupt adjacent control structures and potentially escape the app sandbox. The technical impact can be full device compromise, but reliable exploitation still demands memory-layout knowledge and a stable primitive on the exact target build. A likely weaponized route would be a device-model-specific exploit tuned per driver build and patch level.
Conditions required:
  • Attacker has a stable overwrite primitive on the target firmware
  • Target defenses do not break the chain before kernel control is gained
  • The exploit is tuned to the victim's exact driver/kernel image
Where this breaks in practice:
  • Reliability across mixed Pixel generations and monthly builds is hard
  • Modern kernel hardening raises exploit-dev cost
  • Enterprise fleets often have heterogeneous app stacks and patch cadence
Detection/coverage: Exploit behavior may surface as kernel crashes, media subsystem restarts, or suspicious post-compromise activity on the handset. Preventive detection is much weaker than post-event forensic detection.
STEP 04

Operate on the compromised handset

If successful, the attacker gets a foothold below normal app trust boundaries, which is why this stays out of MEDIUM. The real-world prize is the managed mobile endpoint: tokens, messages, browser sessions, and enterprise app data. There is no evidence in the sources checked of active in-the-wild exploitation or a public campaign tied to this CVE.
Conditions required:
  • Initial exploit succeeds on an affected mobile device
  • Device contains useful enterprise identities or data
  • Post-exploitation controls do not immediately contain the handset
Where this breaks in practice:
  • This is one device at a time, not a mass internet worm surface
  • MDM, app attestation, and conditional access can reduce business impact after compromise
  • Lateral movement from mobile endpoints is usually harder than from a domain-joined laptop
Detection/coverage: Conditional access logs, MDM compliance drift, unusual token use, and mobile threat defense telemetry are your best downstream signals.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed in-the-wild exploitation in the checked sources. CISA ADP's Vulnrichment/SSVC entry shows Exploitation: none, and the CVE is not present in the CISA KEV catalog results I checked.
Proof-of-concept availabilityNo public PoC surfaced in the searches I checked. The main public exploit-development artifact is the AOSP/Gitiles patch diff for bug 321712082, which exposes the missing refcnt bounds guard.
EPSS0.00238 (0.238%) from the user-supplied intel, which is low for a supposedly internet-scale 9.8 bug. Downstream trackers place it roughly in the low-to-mid percentile band, not the top-tier weaponization zone.
KEV statusNot KEV-listed. No CISA due date, no KEV campaign metadata, and no public exploitation note in the vendor bulletin.
CVSS vector reality checkThe published vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, but that assumes a clean remote path to the vulnerable driver. In enterprise terms this is content-driven device exploitation, not a broadly reachable network listener.
Affected scopeCVE/NVD says Android kernel, but the Pixel bulletin narrows the issue to MFC and the public code path lives under Exynos/Tensor media driver trees. That is materially narrower than 'every Android device'.
Fixed versionFor Google devices, security patch level 2026-03-05 or later addresses the issue per the Pixel Update Bulletin. The fix appears in vendor driver code rather than an easy app-level package version.
Scanning / exposure dataShodan/Censys/FOFA-style exposure is basically the wrong lens. This is an endpoint kernel/media path, not a routable service banner. Attack surface management platforms will not meaningfully enumerate it from the public internet.
Disclosure timelineCVE published 2026-03-10. Pixel bulletin version 1.0 published 2026-03-04, updated 2026-03-09, and states it was last updated 2026-03-10 UTC.
Reporter / fix provenanceThe visible fix commit is Samsung-authored and Google-committed in AOSP/Gitiles, with commit message media: mfc: add refcnt condition check to avoid OOB for bug 321712082.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (7.1/10)

The decisive downgrade factor is reachability: this is a hardware-media-driver bug on a narrower mobile population, not a universally exposed network service. It stays HIGH because a successful hit lands below the app sandbox on a managed mobile endpoint, which is still a serious enterprise control failure.

HIGH downgrade from the nominal 9.8 vendor/CISA-ADP baseline
MEDIUM exact remote triggerability across all affected app paths and device builds

Why this verdict

  • Reachability is overstated: AV:N/UI:N reads like an internet-worm service bug, but the real prerequisite is getting crafted media into a vulnerable MFC hardware path on an affected handset.
  • Population is narrower than 'Android': the Pixel bulletin isolates this to MFC, and the public code lives in Exynos/Tensor media-driver trees, which sharply limits exposed fleet percentage versus generic Android CVSS math.
  • Threat intel is cold: no KEV, no confirmed exploitation, no public PoC, and very low EPSS all push this below CRITICAL despite the ugly technical impact.

Why not higher?

I am not calling this CRITICAL because every practical prerequisite narrows the field: affected hardware, affected firmware, media-path reachability, and exploit reliability on specific driver builds. If this were a public-internet service with active exploitation or a mature public exploit, the score would jump fast.

Why not lower?

I am not dropping it to MEDIUM because the impact is still a kernel/media-driver memory corruption issue on a widely carried enterprise endpoint class. If weaponized, it can defeat app isolation and compromise high-value mobile identities and data, which is too consequential for a backlog-only label.

05 · Compensating Control

What to do — in priority order.

  1. Enforce the March 2026 Pixel patch baseline — Use MDM/EMM compliance to require security patch level 2026-03-05 or later on supported Pixel devices. For a HIGH verdict, deploy this compensating control within 30 days where direct patch completion is lagging.
  2. Quarantine non-compliant mobile devices — Gate access to mail, chat, SSO, and internal apps with conditional access so devices missing the March 2026 patch cannot reach sensitive enterprise data. Apply this within 30 days as the main blast-radius reducer for stragglers.
  3. Restrict untrusted app and content sources — Block sideloading, tighten Play Protect / managed app policy, and reduce risky media-ingestion paths on corporate devices. This does not remove the bug, but it lowers the odds that crafted content reaches the vulnerable codec path within the HIGH-severity 30-day mitigation window.
  4. Prioritize high-risk cohorts first — Patch executives, admins, developers with privileged mobile access, and any user groups handling sensitive chat/file flows ahead of the rest of the handset fleet. This buys risk reduction quickly while full remediation works through carrier and user lag, and should start within 30 days.
What doesn't work
  • A perimeter firewall does not help much; there is no fixed server port to block because the vulnerable surface is a local device media-driver path.
  • Network vulnerability scanners will not meaningfully identify exposure; they cannot infer handset kernel-driver state from the public internet.
  • Email filtering alone is insufficient; the same content path could be reached through browsers, messaging apps, or downloaded media outside mail.
06 · Verification

Crowdsourced verification payload.

Run this on an auditor workstation with adb and a USB- or network-connected Android device. Invoke it as ./check-cve-2026-0116.sh <serial> or just ./check-cve-2026-0116.sh for the only attached device; it needs no root on the phone, only adb shell access to read system properties.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check-cve-2026-0116.sh
# Purpose: Determine likely exposure to CVE-2026-0116 on Google Pixel devices.
# Logic: Pixel devices missing security patch level 2026-03-05 are treated as VULNERABLE.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

TARGET_PATCH="2026-03-05"
SERIAL="${1:-}"

fail_unknown() {
  echo "UNKNOWN: $1"
  exit 2
}

adb_cmd() {
  if [[ -n "$SERIAL" ]]; then
    adb -s "$SERIAL" "$@"
  else
    adb "$@"
  fi
}

command -v adb >/dev/null 2>&1 || fail_unknown "adb not found in PATH"

STATE="$(adb_cmd get-state 2>/dev/null || true)"
[[ "$STATE" == "device" ]] || fail_unknown "no reachable adb device"

getprop_safe() {
  adb_cmd shell getprop "$1" 2>/dev/null | tr -d '\r'
}

MODEL="$(getprop_safe ro.product.model)"
BRAND="$(getprop_safe ro.product.brand)"
PATCH="$(getprop_safe ro.build.version.security_patch)"
RELEASE="$(getprop_safe ro.build.version.release)"
DEVICE="$(getprop_safe ro.product.device)"
HARDWARE="$(getprop_safe ro.hardware)"
SOC_MANUF="$(getprop_safe ro.soc.manufacturer)"
BOARD="$(getprop_safe ro.board.platform)"

[[ -n "$MODEL" ]] || fail_unknown "unable to read device model"
[[ -n "$PATCH" ]] || fail_unknown "unable to read security patch level"

# Normalize likely Google Pixel scope.
IS_PIXEL=0
if [[ "$BRAND" =~ [Gg]oogle ]] || [[ "$MODEL" =~ Pixel ]]; then
  IS_PIXEL=1
fi

if [[ $IS_PIXEL -ne 1 ]]; then
  echo "UNKNOWN: non-Pixel or unrecognized device model ('$BRAND $MODEL'); manual review required"
  exit 2
fi

# Heuristic family match for supported Pixel generations likely carrying the gs/Tensor stack.
AFFECTED_FAMILY=0
if [[ "$MODEL" =~ Pixel\ (6|6a|6\ Pro|7|7a|7\ Pro|8|8a|8\ Pro|9|9a|9\ Pro|9\ Pro\ XL|9\ Pro\ Fold|10|10a|10\ Pro|10\ Pro\ XL|10\ Pro\ Fold|Fold) ]]; then
  AFFECTED_FAMILY=1
fi

# Basic date comparison works because Android patch levels are YYYY-MM-DD.
if [[ "$PATCH" < "$TARGET_PATCH" ]]; then
  if [[ $AFFECTED_FAMILY -eq 1 ]]; then
    echo "VULNERABLE: $BRAND $MODEL | Android $RELEASE | Patch $PATCH | device=$DEVICE | hw=$HARDWARE | soc=$SOC_MANUF | board=$BOARD"
    exit 1
  else
    echo "UNKNOWN: Pixel device with patch level $PATCH older than $TARGET_PATCH, but model family is not in the expected affected set: $MODEL"
    exit 2
  fi
fi

echo "PATCHED: $BRAND $MODEL | Android $RELEASE | Patch $PATCH | device=$DEVICE | hw=$HARDWARE | soc=$SOC_MANUF | board=$BOARD"
exit 0
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, treat this as a mobile fleet patch-compliance problem, not a perimeter emergency: identify all managed Pixel devices still below 2026-03-05, quarantine or restrict the non-compliant ones from sensitive enterprise apps within 30 days per the noisgate mitigation SLA, and finish rolling the vendor update across the remaining affected population within 180 days per the noisgate remediation SLA. There is no active exploitation signal here, so you do not need an hours-level fire drill, but you also should not let mobile patch lag turn a kernel bug into a long-lived identity risk.

Sources

  1. Android Security Bulletin—March 2026
  2. Pixel Update Bulletin—March 2026
  3. NVD CVE-2026-0116
  4. OpenCVE record for CVE-2026-0116
  5. AOSP/Gitiles fix commit for bug 321712082
  6. AOSP/Gitiles Exynos tag showing bug 321712082 references
  7. CISA Known Exploited Vulnerabilities Catalog
  8. Google Pixel update support matrix
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.