This is a fake cashier sign hidden behind an already-picked staff door, not a burglar at the front gate
CVE-2026-11019 is an Android-only Chrome Payments flaw affecting versions before 149.0.7827.53. If an attacker has already compromised the renderer process, a crafted HTML page can abuse the Payments implementation to spoof the domain shown to the user during a payment-related flow.
Chromium labels it Medium, and that is technically reasonable in isolation, but for enterprise patch triage it behaves closer to LOW. The decisive friction is the prerequisite: this is not initial access and not standalone remote exploitation; it is a post-renderer-compromise phishing/UI-deception primitive with per-user blast radius.
4 steps from start to impact.
Land renderer control with a separate bug
- Target uses Chrome on Android below 149.0.7827.53
- Attacker can already compromise the Chrome renderer process
- Victim can be driven to attacker-controlled web content
- Renderer compromise is a major prerequisite and usually requires a separate exploit chain
- Modern Safe Browsing, site isolation, and exploit mitigations reduce the pool of successful precursor compromises
- No public PoC or active campaign evidence currently lowers operational attacker interest
Trigger the Payments code path with crafted HTML
- Victim reaches a page invoking the Payments workflow
- The exploited renderer can interact with the relevant UI state
- Payments is a narrower path than generic browsing
- Enterprise Android fleets may not use Chrome web payments heavily
- Some abuse attempts still require user engagement to progress through UI
Spoof domain context inside the payment experience
- Renderer compromise remains stable long enough to manipulate UI state
- Victim relies on browser trust cues during payment confirmation
- Impact is limited to spoofing and social engineering, not code execution
- The attacker still needs a believable lure and timing to exploit user trust
- Security-aware users and managed payment apps reduce success rates
Cash out through credential or transaction deception
- Victim trusts the spoofed context enough to act
- Targeted workflow exposes credentials, approvals, or payment details
- Per-device, per-user blast radius is limited compared with RCE or sandbox escape
- MFA, issuer-side fraud controls, and user confirmation flows can interrupt monetization
- Enterprise mobile users may use native payment apps instead of browser-based flows
The supporting signals.
| In-the-wild status | No confirmed active exploitation found in current public sources; not in CISA KEV as of 2026-06-05. |
|---|---|
| Proof-of-concept availability | No public PoC or exploit repo found in quick OSINT. The Chromium issue is present but restricted, which is normal for unfixed-details handling. |
| EPSS | 0.00035 from provided intel, which is very low predicted exploitation probability. Percentile was not provided. |
| KEV status | Not listed in the CISA Known Exploited Vulnerabilities Catalog. |
| Vendor severity / scoring | Chromium marks this Medium in the CVE text, but no vendor or NVD CVSS score/vector exists yet. |
| Affected versions | Google Chrome on Android versions earlier than 149.0.7827.53. |
| Fixed version | Upgrade to 149.0.7827.53 or later on Android. No distro-backport story applies here because this is an app-store-distributed mobile browser. |
| Exploit precondition | The attacker must have already compromised the renderer process. That is the biggest severity suppressor because it implies a separate prior browser exploit or equivalent foothold. |
| Scanning / exposure data | Not internet-scannable in the Shodan/Censys sense; this is a client-side mobile browser flaw, not a remotely exposed service. Exposure must be measured through MDM/app inventory, not external attack-surface scans. |
| Disclosure / reporter | Published 2026-06-04; Google’s release notes show it was reported by Google on 2026-03-29. |
noisgate verdict.
The decisive factor is the attacker position requirement: the bug only matters after the attacker already has renderer-process compromise inside Chrome on Android. That turns the flaw into a post-compromise UI-spoofing helper with limited blast radius, rather than an initial-access browser emergency.
Why this verdict
- Major downward pressure: requires renderer compromise first — this is not unauthenticated remote code execution and not even standalone browser-to-user compromise; it assumes the attacker already cleared a hard earlier stage.
- Second downward pressure: impact is spoofing, not takeover — the end state is domain deception in a payment flow, which can enable phishing or fraudulent approval, but does not itself give sandbox escape, persistence, or arbitrary code execution.
- Third downward pressure: narrow reachable population — Android-only, Payments-specific path, and no external service exposure means the reachable set is much smaller than a generic Chrome memory-corruption bug.
- No threat-amplifier evidence — no KEV entry, no public exploitation evidence, and a very low provided EPSS all argue against emergency treatment.
Why not higher?
To justify MEDIUM or HIGH in an enterprise queue, this would need either a broader reachable population or a more dangerous end state. It has neither: exploitation depends on a prior renderer compromise and yields a phishing/UI-spoofing primitive rather than device compromise.
Why not lower?
This is still a real security defect in a widely deployed browser and it touches payment trust cues, which users rely on for high-consequence decisions. If an attacker already has renderer control, this flaw can materially improve fraud success, so it is not something to ignore outright.
What to do — in priority order.
- Enforce Chrome auto-update on managed Android — Use your MDM/EMM to require current Chrome builds and surface devices below
149.0.7827.53. For a LOW noisgate verdict there is no mitigation SLA; treat this as backlog hygiene and fold it into normal mobile app update enforcement. - Prefer native payment apps for sensitive workflows — Where business process allows, move payment-sensitive actions out of browser flows and into vetted native apps or managed web wrappers. That reduces dependence on browser trust cues; for LOW, schedule as backlog hygiene rather than interrupt-driven work.
- Restrict risky browsing on corporate Android profiles — Use managed configurations, safe browsing policy, and app protection controls to limit exposure to untrusted content on work profiles. This does not fix the bug, but it makes the required precursor compromise harder; again, no mitigation SLA applies at this severity.
- Monitor version drift in mobile inventory — Build a report for devices running Chrome below
149.0.7827.53and tie it to your normal mobile compliance process. This CVE is best handled through inventory discipline, not emergency response.
- A WAF or reverse proxy will not help; this is a client-side browser flaw in the victim app, not a server-side request pattern you can filter reliably.
- Perimeter vulnerability scanning will miss the real exposure because there is no internet-facing service to fingerprint.
- MFA alone does not solve payment-flow deception; it may reduce account takeover outcomes, but it does not prevent a user from trusting a spoofed merchant or approving a bad transaction.
Crowdsourced verification payload.
Run this on an auditor workstation that has adb installed and USB/network access to a managed Android device. Invoke it as bash verify_cve_2026_11019.sh <device-serial>; it needs no root on the phone, only permission to query package metadata over ADB.
#!/usr/bin/env bash
# verify_cve_2026_11019.sh
# Checks whether Google Chrome on an attached Android device is older than 149.0.7827.53
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -u
TARGET_VERSION="149.0.7827.53"
PKG="com.android.chrome"
SERIAL="${1:-}"
adb_cmd() {
if [ -n "$SERIAL" ]; then
adb -s "$SERIAL" "$@"
else
adb "$@"
fi
}
version_lt() {
# returns 0 if $1 < $2
[ "$1" = "$2" ] && return 1
local first
first=$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -n1)
[ "$first" = "$1" ]
}
if ! command -v adb >/dev/null 2>&1; then
echo "UNKNOWN"
exit 2
fi
if ! adb_cmd get-state >/dev/null 2>&1; then
echo "UNKNOWN"
exit 2
fi
VERSION=$(adb_cmd shell dumpsys package "$PKG" 2>/dev/null | tr -d '\r' | awk -F= '/versionName=/{print $2; exit}')
if [ -z "$VERSION" ]; then
VERSION=$(adb_cmd shell cmd package list packages -f "$PKG" 2>/dev/null | tr -d '\r' | sed -n 's/.*versionName=\([^ ]*\).*/\1/p' | head -n1)
fi
if [ -z "$VERSION" ]; then
INSTALLED=$(adb_cmd shell pm list packages "$PKG" 2>/dev/null | tr -d '\r')
if [ -z "$INSTALLED" ]; then
echo "UNKNOWN"
exit 2
fi
echo "UNKNOWN"
exit 2
fi
# Normalize any accidental suffixes
VERSION=$(printf '%s' "$VERSION" | sed 's/[^0-9.].*$//')
if [ -z "$VERSION" ]; then
echo "UNKNOWN"
exit 2
fi
if version_lt "$VERSION" "$TARGET_VERSION"; then
echo "VULNERABLE"
exit 1
fi
echo "PATCHED"
exit 0
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.