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

Insufficient validation of untrusted input in Reading List in Google Chrome on iOS prior to 149

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

This is a booby-trapped bookmark, not a kicked-in front door

CVE-2026-11272 is an input-validation flaw in Reading List for Google Chrome on iOS affecting versions before 149.0.7827.53. The vulnerable path is not generic web browsing; the attacker has to get untrusted content into the Reading List workflow and then rely on the victim to perform the right in-app actions so Chrome processes attacker-controlled data there. On iOS, that usually means browser-context script/HTML injection, spoofing, or policy bypass inside the app rather than a straight device compromise.

The vendor's 8.8/HIGH score reads like a broadly reachable browser exploit, but the real-world path is much tighter. This is Chrome on iPhone/iPad only, it needs user interaction, it hinges on a specific feature path, and the likely blast radius is constrained by the iOS app sandbox and the fact that Chrome on iOS is not a normal desktop Chromium exposure story. With no KEV listing, no public exploitation evidence, and a very low EPSS, this is worth fixing but not worth stampeding 10,000 endpoints over.

"Vendor says HIGH; reality says narrow iOS app bug with user choreography and no exploitation signal"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land the lure in mobile Chrome

The attacker starts with a crafted page, link, or social lure designed for a victim using Chrome on iOS. The goal is not just page render; it is to push the victim toward the Reading List flow where the vulnerable input handling lives. There is no evidence of internet-wide opportunistic exploitation tooling here; this is closer to a targeted social-engineering setup than a drive-by worm.
Conditions required:
  • Victim uses Chrome on iOS, not desktop Chrome or Android Chrome
  • Attacker can deliver a lure by email, chat, SMS, or another user-facing channel
  • Victim opens the content in Chrome on iOS
Where this breaks in practice:
  • Enterprise mobile fleets often have a smaller Chrome-on-iOS population than desktop Chrome
  • If users stay in Safari or managed in-app browsers, this specific path dies
  • Email security, SMS filtering, and user skepticism can break the chain before the bug is touched
Detection/coverage: No network scanner will reliably find this. Detection is mainly through MDM inventory for app version and, if you have it, mobile threat defense telemetry around suspicious browser workflows.
STEP 02

Force the Reading List path

The exploit needs the victim to perform the right UI steps so attacker-controlled input is handled by the Reading List feature. In practice that means a specific user gesture sequence rather than a plain page visit. That single prerequisite is the biggest downgrade factor in this entire reassessment.
Conditions required:
  • Victim must engage with the Reading List feature
  • The malicious content must survive whatever normalization Chrome applies before storage/display
Where this breaks in practice:
  • Many users never touch Reading List at all
  • Even users who do use it may not perform the exact gesture sequence the exploit expects
  • Feature-specific bugs break across minor UX changes and are less reliable than renderer memory corruption
Detection/coverage: There is typically no signature-based detection coverage. You are looking for user reports, crash telemetry, or unusual mobile browser behavior rather than a clean IDS rule.
STEP 03

Trigger untrusted input handling in Reading List

Once the victim hits the workflow, malformed or attacker-controlled content is processed by the vulnerable Reading List code path. Based on the vulnerability class and neighboring Chrome-for-iOS issues in this release family, the realistic impact is script/HTML injection, UI spoofing, or policy bypass inside the browser app, not a clean unauthenticated device-level RCE. There is no public PoC showing a broader privilege break from this bug.
Conditions required:
  • The crafted content reaches the vulnerable parser or renderer state
  • The exploit remains compatible with the iOS app/runtime constraints
Where this breaks in practice:
  • iOS browser apps live inside Apple's application security model, which narrows post-bug impact
  • Chrome on iOS is a smaller, less homogeneous target surface than desktop Chromium
  • Feature-specific logic flaws tend to have brittle exploit reliability
Detection/coverage: Static vuln scanners will miss runtime abuse. Crash reporting and app analytics are more useful than perimeter controls.
STEP 04

Abuse browser trust, not the whole device

If exploitation succeeds, the attacker can likely abuse the victim's trust in the browser UI or execute content in a context the user did not intend. That supports credential phishing, session abuse, or data theft *within the app's reachable context*. For enterprise triage, that is serious enough to patch, but it is not equivalent to an internet-facing pre-auth infrastructure foothold.
Conditions required:
  • Victim must have something valuable reachable from the browser session
  • Attacker must turn the app-level bug into a concrete follow-on action
Where this breaks in practice:
  • MFA, conditional access, and reauthentication can blunt some follow-on account abuse
  • Blast radius is user-by-user rather than fleet-wide service compromise
  • There is no sign of commodity exploit kits or mass scanning tied to this CVE
Detection/coverage: Look for suspicious sign-in events following mobile browser activity, anomalous IdP prompts, and user complaints about spoofed or unexpected content.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed active exploitation found in the sources reviewed, and not listed in CISA KEV.
Public PoC availabilityNo public PoC repo or exploit write-up found for this CVE at time of assessment.
EPSS0.00066 from the user-supplied intel block; that is very low predicted near-term exploitation probability.
KEV statusNot KEV-listed as of the reviewed catalog state.
Vendor baselineHIGH / 8.8, vector CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H. The weak point in that baseline is that it does not price in the Reading List-specific user choreography very well.
Affected versionsGoogle Chrome on iOS before 149.0.7827.53.
Fixed version149.0.7827.53 or later for Chrome on iOS. I found no distro-style backport story here because this is a mobile app distributed through Apple's ecosystem, not a Linux package.
Exposure realityThis is a client-side mobile app issue, so Shodan/Censys/FOFA-style internet exposure counts do not apply. Your exposure is the number of managed iPhones/iPads running Chrome below 149.0.7827.53.
Disclosure timing2026-06-05 from the supplied intel. The Chrome 149 security-fix family was being published in late May / early June 2026.
Researcher / reportingI found no public external researcher credit for this specific CVE in the reviewed sources; treat it as vendor-disclosed unless Google later adds attribution.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.9/10)

The decisive factor is exploit friction: this bug appears to require the victim to be on Chrome for iOS and to hit a specific Reading List interaction path, which sharply narrows reachable population and exploit reliability. That makes it a meaningful client-side issue, but not a fleet-burning emergency on the level of an unauthenticated server RCE or a mass-drive-by desktop browser zero-day.

HIGH Version range and fixed version
MEDIUM Real-world exploitability downgrade driven by user-interaction and product-scope friction
LOW Exact post-exploitation impact wording because the public description is truncated and sparse

Why this verdict

  • Requires iOS Chrome plus feature-specific user choreography: attacker position starts as *unauthenticated remote*, but the prerequisite implies a social-engineering stage and a victim who actually uses Reading List. That shrinks exposed population well below general Chrome numbers, and modern email/SMS filtering plus basic user skepticism should stop many attempts before the bug is touched.
  • Product scope is narrower than the CVSS baseline suggests: this affects Chrome on iOS, not your Windows/Mac/Linux desktop fleet. In real enterprises, the fraction of users running vulnerable Chrome on managed iPhones/iPads is usually a subset of the browser population, so the vendor's generic browser score deserves a downward adjustment.
  • Likely blast radius is app-context, not infrastructure foothold: the bug class is input validation in a UI feature, not a proven sandbox escape or server-side pre-auth path. Modern iOS app containment acts as a real amplifier reducer, so even a successful trigger is less strategically dangerous than the same score on desktop Chromium or an exposed edge appliance.
  • No exploitation pressure: the user-supplied EPSS 0.00066, lack of KEV listing, and absence of a public PoC or campaign reporting all argue against urgent adversary focus. Threat intel here applies downward pressure because there is no evidence of weaponization momentum.

Why not higher?

It is not higher because too many things have to line up: the victim must be on the right platform, use the right browser, and perform the right in-app interaction. That is a real exploit chain, but it is a narrow chain, and narrow chains do not deserve server-RCE-style treatment absent active exploitation or a demonstrated sandbox/device escape.

Why not lower?

It is not lower because the attacker can still begin from a remote content lure and potentially abuse browser trust in a way that matters for enterprise identity and data. Even app-scoped script/HTML injection or spoofing on a managed mobile device can produce credential capture, session abuse, or sensitive content exposure, so this is more than backlog trivia.

05 · Compensating Control

What to do — in priority order.

  1. Inventory vulnerable iOS Chrome installs — Use MDM or app inventory now to enumerate Chrome on iOS < 149.0.7827.53. There is no noisgate mitigation SLA for MEDIUM; use this immediately as scoping work and complete remediation inside the 365-day window.
  2. Force app updates through MDM/App Store policy — If you manage iOS app versions, push or require update to 149.0.7827.53+. There is no mitigation SLA — go straight to the 365-day remediation window, but for high-risk user groups you should close the gap in the next normal mobile-app maintenance cycle, not at the end of the year.
  3. Restrict Chrome as default browser for high-risk roles until updated — For executives, admins, or heavily phished populations, temporarily prefer a managed browser policy that reduces exposure to outdated Chrome on iOS if your environment supports it. Use this only as a short-term containment measure while you finish remediation within the 365-day window.
  4. Coach users away from untrusted Reading List saves — A lightweight awareness note helps because this chain depends on specific UI interaction. Tell users not to save content from unsolicited links into Reading List until their device shows the updated Chrome version; again, there is no mitigation SLA for MEDIUM, so treat this as opportunistic friction reduction.
What doesn't work
  • Perimeter WAF/IPS: this is a client-side mobile app issue, so edge controls do not reliably see or block the vulnerable local workflow.
  • Network vulnerability scanning: there is no internet-facing service banner to probe; the real question is app version on managed devices.
  • MFA alone: MFA can reduce some follow-on account abuse, but it does not prevent in-browser spoofing, user deception, or theft of already-viewable content.
06 · Verification

Crowdsourced verification payload.

Run this on an auditor workstation or CI runner, not on the iPhone itself. Export an MDM/app-inventory CSV with columns like device_id,platform,app_name,app_version, then run python3 check_cve_2026_11272.py devices.csv; no admin rights are needed, just read access to the CSV.

noisgate-verify.py
PYTHONREAD-ONLYSAFE
#!/usr/bin/env python3
# Check exposure to CVE-2026-11272 in Chrome on iOS
# Usage: python3 check_cve_2026_11272.py devices.csv
# Expected CSV headers: device_id, platform, app_name, app_version
# Exit codes:
#   0 = all matching rows patched or no Chrome iOS rows found
#   1 = one or more vulnerable rows found
#   2 = unknown / bad input / missing required headers

import csv
import re
import sys
from pathlib import Path

FIXED = (149, 0, 7827, 53)
REQUIRED_HEADERS = {"device_id", "platform", "app_name", "app_version"}


def parse_version(v):
    if v is None:
        return None
    s = str(v).strip()
    if not s:
        return None
    m = re.findall(r"\d+", s)
    if len(m) < 2:
        return None
    parts = [int(x) for x in m[:4]]
    while len(parts) < 4:
        parts.append(0)
    return tuple(parts)


def is_ios(platform):
    if platform is None:
        return False
    p = str(platform).strip().lower()
    return p in {"ios", "iphoneos", "ipad os", "ipados", "ipad", "iphone"}


def is_chrome(app_name):
    if app_name is None:
        return False
    a = str(app_name).strip().lower()
    return a in {"google chrome", "chrome", "googlechrome"}


def cmp_ver(a, b):
    return (a > b) - (a < b)


def main():
    if len(sys.argv) != 2:
        print("UNKNOWN - usage: python3 check_cve_2026_11272.py devices.csv")
        sys.exit(2)

    path = Path(sys.argv[1])
    if not path.is_file():
        print(f"UNKNOWN - file not found: {path}")
        sys.exit(2)

    vulnerable = 0
    patched = 0
    unknown = 0
    matched = 0

    try:
        with path.open(newline="", encoding="utf-8-sig") as f:
            reader = csv.DictReader(f)
            if reader.fieldnames is None:
                print("UNKNOWN - CSV has no headers")
                sys.exit(2)
            headers = {h.strip() for h in reader.fieldnames if h is not None}
            missing = REQUIRED_HEADERS - headers
            if missing:
                print("UNKNOWN - missing required headers: " + ", ".join(sorted(missing)))
                sys.exit(2)

            for row in reader:
                device_id = str(row.get("device_id", "")).strip() or "<unknown-device>"
                platform = row.get("platform")
                app_name = row.get("app_name")
                app_version = row.get("app_version")

                if not (is_ios(platform) and is_chrome(app_name)):
                    continue

                matched += 1
                ver = parse_version(app_version)
                if ver is None:
                    unknown += 1
                    print(f"UNKNOWN,{device_id},{platform},{app_name},{app_version}")
                    continue

                if cmp_ver(ver, FIXED) < 0:
                    vulnerable += 1
                    print(f"VULNERABLE,{device_id},{platform},{app_name},{app_version}")
                else:
                    patched += 1
                    print(f"PATCHED,{device_id},{platform},{app_name},{app_version}")

    except Exception as e:
        print(f"UNKNOWN - failed to parse CSV: {e}")
        sys.exit(2)

    if matched == 0:
        print("PATCHED - no Chrome on iOS rows found in input")
        sys.exit(0)

    print(f"SUMMARY matched={matched} vulnerable={vulnerable} patched={patched} unknown={unknown} fixed_version=149.0.7827.53")

    if vulnerable > 0:
        sys.exit(1)
    if unknown > 0:
        sys.exit(2)
    sys.exit(0)


if __name__ == "__main__":
    main()
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, have mobility ops pull an inventory of Chrome on iOS versions and identify devices below 149.0.7827.53. This lands in MEDIUM, so there is no noisgate mitigation SLA — go straight to the 365-day remediation window; use the next normal mobile-app maintenance cycle to update managed devices, and treat exceptions as monitored backlog until closure under the noisgate remediation SLA of ≤ 365 days. If you have executive or admin-heavy mobile groups, close those first because this is a user-driven browser trust bug, not an internet-facing server fire.

Sources

  1. Google Chrome Releases
  2. openSUSE patchinfo listing Chrome CVEs including CVE-2026-11272
  3. Apple Developer: Using alternative browser engines in the European Union
  4. Chromium source: iOS Chrome Architecture
  5. Chromium issue showing Reading List exists as an iOS-specific code path
  6. CISA Known Exploited Vulnerabilities Catalog
  7. FIRST EPSS data and stats
  8. Google Chrome Help: update Chrome on iPhone and iPad
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.