← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-11247 · CWE-693 · Disclosed 2026-06-05

Insufficient policy enforcement in CustomTabs in Google Chrome on Android prior to 149

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

This is a peephole in an app-embedded browser window, not a front-door break-in

CVE-2026-11247 is an insufficient policy enforcement flaw in Custom Tabs in Google Chrome on Android that can let a remote attacker leak cross-origin data using a crafted HTML page. The affected population is narrower than plain "Chrome users": the victim has to be on Chrome for Android before the fixed train and hit the malicious content through a flow that actually uses Custom Tabs. In practice, the Android stable release carrying the fix is Chrome 149.0.7827.59, while Google ties the security fix set to the corresponding desktop 149.0.7827.53/54 release.

Google's LOW / 3.1 label is basically fair, and if anything a little generous for enterprise patch triage. The real-world chain needs a victim click, a vulnerable Android device, a Custom Tabs execution path, and conditions that make a cross-origin leak actually useful; the payoff is limited to confidentiality leakage, not code execution, persistence, or broad tenant compromise.

"Remote but narrow: this is a click-to-leak bug in Android Custom Tabs, not a fleet-wide emergency"
02 · The Attack Path

3 steps from start to impact.

STEP 01

Land the victim in a vulnerable Custom Tab

The attacker sends a phishing link or otherwise gets the user to open attacker-controlled HTML on an Android device where the target app hands links to Chrome Custom Tabs. Weaponized content here is just a crafted web page; there is no published exploit kit or turnkey repo tied to this CVE in the reviewed sources. This is a classic client-side lure step, not an unauthenticated service exploit.
Conditions required:
  • Victim uses Android with vulnerable Chrome build
  • A target app or workflow opens links with Custom Tabs
  • User clicks or navigates to attacker-controlled content
Where this breaks in practice:
  • Requires user interaction
  • Requires Android, not desktop Chrome
  • Requires Custom Tabs path, not every browser session
  • MDM-managed mobile fleets often auto-update Chrome quickly
Detection/coverage: Server-side scanners will miss this. Mobile inventory / MDM version telemetry can detect vulnerable Chrome builds; exploit-specific network signatures are unlikely.
STEP 02

Trigger the policy enforcement gap

Inside the Custom Tabs context, the crafted page attempts to abuse the policy enforcement flaw to expose cross-origin data that should stay isolated. The vendor CVSS flags this as AC:H, which matches the reality that exploitability depends on browser state, page behavior, and a fragile client-side sequence rather than a trivial one-shot trigger.
Conditions required:
  • Victim browser state and page flow align with the bug
  • Target origin data is present and reachable in the affected context
Where this breaks in practice:
  • Exploit reliability is likely brittle
  • Impact is capped to data exposure, not active code execution
  • Modern web hardening can reduce the value of leaked artifacts
Detection/coverage: No dependable signature coverage expected. Browser crash telemetry is irrelevant because this is not a memory-corruption bug.
STEP 03

Exfiltrate whatever the bug actually yields

If the cross-origin read succeeds, the attacker exfiltrates the leaked data back to infrastructure they control. In enterprise terms, the plausible impact is session-adjacent or content-adjacent disclosure for the affected user, not host takeover or lateral movement by itself.
Conditions required:
  • Leaked data has security value
  • Victim device can reach attacker-controlled egress
Where this breaks in practice:
  • Blast radius is usually one user / one session / one device
  • No direct integrity or availability impact
  • Useful outcomes depend heavily on the victim's authenticated state
Detection/coverage: General web proxy or mobile threat defense telemetry may show suspicious outbound web requests, but attribution to this CVE specifically will be weak.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo known active exploitation in reviewed sources. Google did not flag this as exploited, and CISA KEV does not list it.
Proof-of-concept availabilityNo public PoC located. The Chromium bug entry is restricted, and no public exploit repo or Nuclei template surfaced in the reviewed source set.
EPSS0.00032 from the supplied intel, which is effectively near-floor exploitation probability. Percentile was not provided in the available source set.
KEV statusNot KEV-listed on CISA's catalog review; therefore there is no CISA due date or federal exploit-driven urgency signal.
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N — remote and no-auth, but high complexity, user interaction required, and confidentiality-low only.
Affected versionsChrome on Android before the fixed 149 train carrying this security set. The CVE text references prior to 149.0.7827.53; operationally on Android the fixed stable rollout is 149.0.7827.59.
Fixed versionsChrome for Android 149.0.7827.59 or later contains the same security fixes as desktop 149.0.7827.53/54, per Google's Android release note.
Exposure / scanning dataNot meaningfully internet-scannable. This is a client-side Android browser flaw, so Shodan/Censys/GreyNoise-style exposure metrics are mostly irrelevant; the right lens is mobile fleet version inventory, not external attack surface.
Disclosure2026-06-05 per the supplied intel; Google's release posts for the fixed train are dated 2026-06-02.
ReporterGoogle is credited in the Chrome release note, with the bug listed as reported on 2026-03-30.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to LOW (2.4/10)

The decisive friction is that this bug needs a victim-driven Android Custom Tabs path, which sharply narrows the reachable population compared with a generic browser RCE or universal same-origin bypass. Even if triggered, the impact is limited to low-grade data leakage for the active user context, with no code execution or direct fleet-level blast radius.

HIGH This is **not** a priority emergency for enterprise patch scheduling
MEDIUM Exact exploit preconditions inside Custom Tabs remain partially opaque because the Chromium issue is restricted

Why this verdict

  • Downward adjustment: requires user interaction — a remote attacker still has to get the victim onto attacker-controlled HTML, so this is not wormable or opportunistic internet spray at server scale.
  • Downward adjustment: Android + Custom Tabs only — the prerequisite implies a narrower exposure pool than ordinary Chrome browsing. Enterprises with small managed Android fleets or low Custom Tabs dependence have materially less risk than the vendor baseline suggests.
  • Downward adjustment: low blast radius — successful exploitation leaks some cross-origin data in the victim's browser context, but it does not buy code execution, persistence, admin rights, or broad tenant compromise.
  • Slight upward adjustment: browser-session context can still matter — if the victim is authenticated to SSO, internal portals, or sensitive SaaS, even a low-confidence data leak can expose useful crumbs. That keeps this above IGNORE.

Why not higher?

There is no evidence of active exploitation, no public PoC, and no sign this bug is broadly reliable or easy to weaponize. More importantly, the chain compounds friction: attacker-controlled content, user interaction, Android-only targeting, and a Custom Tabs-specific execution path all suppress reachable population.

Why not lower?

This is still a remote, no-auth client-side bug that can touch browser trust boundaries. For organizations with heavy Android BYOD or mobile-first SaaS usage, the per-user impact can still include sensitive session-adjacent leakage, so writing it off entirely would be too casual.

05 · Compensating Control

What to do — in priority order.

  1. Force Chrome auto-update on Android — Use Play managed configurations or your MDM to ensure Chrome for Android reaches 149.0.7827.59+. Because the reassessed verdict is LOW, there is no SLA (treat as backlog hygiene), but you should still push it in the next normal mobile browser maintenance cycle.
  2. Prefer managed browser flows for sensitive apps — Where your mobile stack allows it, route IdP, HR, finance, and internal portal links into your managed enterprise browser instead of arbitrary app-driven Custom Tabs. This reduces dependence on the affected execution path while backlog remediation catches up; for a LOW issue, do this as backlog hygiene rather than as emergency work.
  3. Review internal app use of Custom Tabs — If you build Android apps, inventory where Custom Tabs are used for authenticated or sensitive workflows and decide whether those flows should stay there. For a LOW verdict there is no hard mitigation SLA, but this is the right engineering follow-up before the next release train.
What doesn't work
  • A WAF will not fix a client-side policy enforcement flaw in the victim's browser context.
  • External attack-surface scanning tools like Shodan/Censys do not help here because the vulnerable component is an Android browser, not an exposed service.
  • Patching the target website alone does not reliably solve the issue, because the broken boundary is in the browser's handling of Custom Tabs, not necessarily in the site being visited.
06 · Verification

Crowdsourced verification payload.

Run this on an auditor workstation with Android platform-tools (adb) installed, not on the phone itself. Invoke it as ./check_cve_2026_11247.sh <device-serial> or ./check_cve_2026_11247.sh for the only connected device; it needs USB debugging or enterprise adb access, but no root.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_11247.sh
# Detect whether a connected Android device has Chrome for Android below the
# fixed version associated with CVE-2026-11247.
#
# Operational fixed version on Android stable: 149.0.7827.59
# Exit codes:
#   0 = PATCHED
#   1 = VULNERABLE
#   2 = UNKNOWN / error

set -u

FIXED_VERSION="149.0.7827.59"
PACKAGE="com.android.chrome"
SERIAL="${1:-}"

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

version_lt() {
  # returns 0 (true) if $1 < $2
  local a="$1" b="$2"
  if [[ "$a" == "$b" ]]; then
    return 1
  fi
  local first
  first=$(printf '%s\n%s\n' "$a" "$b" | sort -V | head -n1)
  [[ "$first" == "$a" ]]
}

if ! command -v adb >/dev/null 2>&1; then
  echo "UNKNOWN: adb not found in PATH"
  exit 2
fi

if ! adb_cmd get-state >/dev/null 2>&1; then
  echo "UNKNOWN: no accessible Android device via adb"
  exit 2
fi

DUMPSYS_OUT=$(adb_cmd shell dumpsys package "$PACKAGE" 2>/dev/null)
if [[ -z "$DUMPSYS_OUT" ]]; then
  echo "UNKNOWN: unable to query package $PACKAGE"
  exit 2
fi

VERSION=$(printf '%s
' "$DUMPSYS_OUT" | sed -n 's/.*versionName=//p' | head -n1 | tr -d '\r')
if [[ -z "$VERSION" ]]; then
  VERSION=$(adb_cmd shell cmd package dump "$PACKAGE" 2>/dev/null | sed -n 's/.*versionName=//p' | head -n1 | tr -d '\r')
fi

if [[ -z "$VERSION" ]]; then
  echo "UNKNOWN: Chrome package found but versionName could not be determined"
  exit 2
fi

if version_lt "$VERSION" "$FIXED_VERSION"; then
  echo "VULNERABLE: $PACKAGE version $VERSION is below fixed version $FIXED_VERSION"
  exit 1
else
  echo "PATCHED: $PACKAGE version $VERSION is at or above fixed version $FIXED_VERSION"
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: do not burn the incident queue on this one. Pull a mobile inventory report for Chrome on Android, identify devices below 149.0.7827.59, and roll them into the next normal browser maintenance wave; for a LOW verdict there is no noisgate mitigation SLA and noisgate remediation SLA is no SLA (treat as backlog hygiene), so this is standard-update work rather than emergency work. If you run sensitive mobile SSO or internal-app flows through Custom Tabs, document that exposure and make sure the actual vendor patch lands during your regular mobile patch cycle rather than letting it drift indefinitely.

Sources

  1. Google Chrome Releases - Stable Channel Update for Desktop (June 2, 2026)
  2. Google Chrome Releases - Chrome for Android Update (June 2, 2026)
  3. Chromium issue 497865734
  4. CISA Known Exploited Vulnerabilities Catalog
  5. FIRST EPSS overview
  6. FIRST EPSS data and stats
  7. CVE-2026-11247 summary mirror with vendor references
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.