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

Type Confusion in GFX in Google Chrome on Linux

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

This is the burglar finding the stairwell after they already got through the lobby door

CVE-2026-9117 is a type confusion bug in Chrome's GFX code path on Linux and ChromeOS. Per NVD, versions prior to 148.0.7778.179 are affected, and the bug can let an attacker who has already compromised the renderer process attempt a sandbox escape using a crafted video file. Google's May 19, 2026 desktop release notes list the fix in the 148.0.7778.178/179 train and specifically show 148.0.7778.178 for Linux, so there is a small versioning inconsistency between sources that matters for exact audit logic.

The vendor's HIGH 7.5 score is technically defensible in isolation because sandbox escapes are high-value browser bugs. But in real enterprise patch triage, this is not initial access: it is the second stage of an exploit chain, requires the attacker to first land execution in the renderer, then hit a Linux/ChromeOS-only GFX path with a crafted video trigger. That combination narrows reachable population and sharply reduces urgency versus a one-click, unauthenticated browser RCE.

"Valuable in exploit chains, but not a fleet-wide fire: this starts after the attacker already owns the renderer."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land code in the renderer with a separate web exploit

The attacker first needs a different Chrome vulnerability to compromise the sandboxed renderer from web content. This bug does not provide that foothold by itself; it only becomes useful after renderer compromise. In practice that means a chained exploit, not a standalone drive-by.
Conditions required:
  • Victim runs vulnerable Chrome on Linux or ChromeOS
  • Victim is lured to attacker-controlled content
  • Attacker has a separate working renderer exploit
Where this breaks in practice:
  • Requires a second vulnerability or renderer compromise stage before CVE-2026-9117 matters
  • Modern Chrome hardening, renderer sandboxing, and Site Isolation increase exploit-chain complexity
  • No public exploit chain for CVE-2026-9117 was found
Detection/coverage: Commodity scanners can flag vulnerable versions, but they cannot validate renderer-compromise preconditions. Browser exploitation telemetry typically comes from EDR, crash analytics, or web gateway logs rather than network scanners.
STEP 02

Drive the compromised renderer into the vulnerable GFX path

Once inside the renderer, the attacker has to steer execution into the vulnerable GFX handling path using a crafted video file as described by NVD. That implies media decoding or rendering behavior specific enough to hit the type-confusion condition reliably. This is not the same as 'visit any page and pop a shell.'
Conditions required:
  • Renderer is already compromised
  • Target processes attacker-controlled video content
  • The vulnerable GFX path is reachable on that platform and build
Where this breaks in practice:
  • Crafted-video requirement narrows trigger reliability
  • Media-path exploitation is often brittle across versions, codecs, GPU/graphics stacks, and hardware acceleration settings
  • Linux and ChromeOS only
Detection/coverage: Version scanners will still only say 'possibly vulnerable.' Runtime detection is weak unless you have browser crash telemetry, sandbox violation telemetry, or exploit-behavior analytics.
STEP 03

Convert type confusion into a sandbox escape

The exploit goal is to turn the GFX memory corruption into cross-boundary execution outside the sandboxed renderer. Chrome's own architecture separates renderer processes from the broader browser and OS-facing components, so the attacker must cross that boundary cleanly. That is why sandbox escapes are prized by offensive teams but also why they are harder to weaponize than plain renderer bugs.
Conditions required:
  • Precise memory corruption control from the GFX bug
  • Ability to bypass or survive modern exploit mitigations
  • A browser build where the bug remains unpatched
Where this breaks in practice:
  • Sandbox escapes are harder to make reliable than renderer-only code execution
  • Exploit mitigations, broker boundaries, and process isolation raise failure rate
  • No public evidence of active exploitation
Detection/coverage: There is no broad internet-facing detection surface here. Behavioral detection is mostly endpoint-side: suspicious browser child processes, anomalous seccomp violations, crash bursts, or unexpected post-browser execution.
STEP 04

Operate as the browser user on the endpoint

If the chain succeeds, the attacker moves from renderer confinement to code execution in a more privileged browser/host context, typically as the logged-in user rather than root. From there, credential theft, session hijacking, local recon, and follow-on malware staging become realistic. Impact is real, but only after a multi-stage chain lands.
Conditions required:
  • Successful sandbox escape
  • Useful user context on the target device
  • EDR or application control does not block follow-on activity
Where this breaks in practice:
  • Blast radius is usually the single endpoint and user context, not instant domain compromise
  • EDR can still catch post-escape payload staging or credential access
Detection/coverage: Post-exploitation is where defenders have the best chance: EDR process trees, browser spawning unusual children, shell launches from browser lineage, and credential-store access.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo public exploitation evidence found. Not present in CISA KEV as of this assessment.
Public PoC availabilityNo public PoC or Metasploit-style module found in reviewed sources. Chromium issue details may remain restricted until broad patch uptake.
EPSS0.00025 from the user-provided intel block — effectively very low near-term exploitation probability. Percentile was not independently verified from the EPSS API in this session.
KEV statusNot KEV-listed. That removes the strongest urgency amplifier used in enterprise patch prioritization.
CVSS vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H — the big tells are AC:H and UI:R, but the real-world downscorer is the description's explicit prior renderer compromise requirement.
Affected versionsNVD says Google Chrome on Linux and ChromeOS prior to 148.0.7778.179.
Fixed versionsGoogle's May 19, 2026 release notes shipped the fix in the 148.0.7778.178/179 line and specifically list 148.0.7778.178 for Linux. Treat 148.0.7778.178+ on Linux and 148.0.7778.179+ where vendor packaging says so as the safe floor, and verify against your package source.
Scanning / exposure dataNot internet-scannable in the normal Shodan/Censys sense because this is a client-side browser flaw, not a listening network service. Exposure has to be measured from asset inventory / package telemetry, not internet census data.
Disclosure / reportingDisclosed 2026-05-20. Google's release notes say it was reported by Google on 2026-04-01.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.9/10)

The decisive downscoring factor is the attacker position requirement: this bug matters only after renderer compromise, which makes it a post-initial-access browser escape stage, not a first-hop remote compromise. Linux/ChromeOS-only scope and the absence of KEV, PoC, or meaningful EPSS pressure keep it out of the urgent patch bucket.

HIGH Assessment that this is **not** a standalone initial-access browser bug
MEDIUM Exact fixed-version floor because NVD and Google's Linux release numbering are slightly inconsistent
HIGH Threat-pressure read based on **no KEV**, **no public PoC found**, and **very low EPSS**

Why this verdict

  • -1.1 for prior compromise requirement: vendor 7.5 starts from a network-reachable browser flaw, but the NVD description explicitly says the attacker must have already compromised the renderer. That means this CVE is the second stage in a chain, not the entry point.
  • -0.3 for reachable population: affected scope is Linux and ChromeOS, not the full cross-platform Chrome fleet. In many enterprises that is a minority desktop population, though some EDU/dev-heavy environments will be exceptions.
  • -0.2 for current threat signal: EPSS 0.00025, no KEV, and no public PoC found say the market is not currently treating this as a hot weaponized bug.
  • No downward credit for impact: if chained successfully, sandbox escape from Chrome is still strategically useful because it turns renderer-only compromise into endpoint execution in user context.

Why not higher?

This is not higher because the exploit chain begins from a compromised renderer, which implies the attacker already solved the hardest part of browser exploitation with another bug. Add the crafted-video trigger and Linux/ChromeOS-only scope, and this becomes a narrower chain component rather than a broad enterprise emergency.

Why not lower?

This is not lower because sandbox escapes in Chrome are high-value primitives for real exploit chains, and browsers remain one of the highest-frequency untrusted-content handlers in the fleet. If you operate large Linux developer estates or ChromeOS-heavy user populations, the reachable population inside your environment may be meaningful even without public exploitation.

05 · Compensating Control

What to do — in priority order.

  1. Enforce browser auto-update — Make sure managed Linux and ChromeOS endpoints cannot drift off the stable channel indefinitely. Because this verdict is MEDIUM, there is no mitigation SLA — go straight to the 365-day remediation window; use your normal browser governance path rather than an emergency change window.
  2. Prioritize exposed user groups — If you must sequence work, check developer Linux workstations, internet-facing admin jump hosts with browsers, and ChromeOS-heavy user groups first. This is still a chainable sandbox escape, so if patch lag is unavoidable, reduce exposure on the riskiest browsing populations during the 365-day remediation window.
  3. Harden media handling where feasible — Review policies around untrusted media playback in browser sessions and restrict unnecessary risky workflows on high-value endpoints. This is a supporting control only; for a MEDIUM finding, apply it through normal configuration management while you remediate within 365 days.
  4. Watch browser child-process behavior — Tune EDR detections for browsers spawning shells, scripting engines, or unusual helpers, because post-escape execution is where defenders regain visibility. There is no mitigation SLA here, so deploy or tune this during normal detection engineering, not as a same-day fire drill.
What doesn't work
  • A WAF does not help; this is a client-side browser vulnerability, not a server-side web app flaw.
  • Perimeter network scanning does not help much; there is no listening service to fingerprint from the internet.
  • MFA does not prevent exploit execution; it may reduce follow-on account abuse, but it does not stop the browser escape itself.
  • Email filtering alone is insufficient; the initial delivery vector can just be a malicious site or embedded media in normal browsing.
06 · Verification

Crowdsourced verification payload.

Run this on the target Linux endpoint or through your Linux fleet agent. Invoke it as bash check_cve_2026_9117.sh with no special privileges required; it checks installed Google Chrome version and returns VULNERABLE, PATCHED, or UNKNOWN. For ChromeOS, use your management plane or host inventory instead — this script is aimed at Linux desktop/server endpoints with Chrome installed.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_9117.sh
# Detect likely exposure to CVE-2026-9117 on Linux Google Chrome installs.
# Exit codes:
#   0 = PATCHED
#   1 = VULNERABLE
#   2 = UNKNOWN / not applicable

set -u

FIXED_VERSION="148.0.7778.178"

find_chrome_bin() {
  local candidates=(
    "/usr/bin/google-chrome"
    "/usr/bin/google-chrome-stable"
    "/opt/google/chrome/google-chrome"
    "google-chrome"
    "google-chrome-stable"
  )

  local c
  for c in "${candidates[@]}"; do
    if command -v "$c" >/dev/null 2>&1; then
      command -v "$c"
      return 0
    elif [ -x "$c" ]; then
      printf '%s\n' "$c"
      return 0
    fi
  done

  return 1
}

normalize_version() {
  # Extract first dotted quad-like version from input
  echo "$1" | grep -Eo '[0-9]+(\.[0-9]+){2,3}' | head -n1
}

ver_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" ]
}

CHROME_BIN=$(find_chrome_bin) || {
  echo "UNKNOWN: Google Chrome binary not found on this Linux host"
  exit 2
}

RAW_VERSION=$($CHROME_BIN --version 2>/dev/null || true)
INSTALLED_VERSION=$(normalize_version "$RAW_VERSION")

if [ -z "${INSTALLED_VERSION:-}" ]; then
  echo "UNKNOWN: Unable to parse Chrome version from: $RAW_VERSION"
  exit 2
fi

# Note: NVD says prior to 148.0.7778.179 for Linux/ChromeOS, while Google's
# May 19, 2026 Linux desktop release notes show 148.0.7778.178 for Linux.
# This script uses 148.0.7778.178 as the Linux safe floor per Google's release notes.

if ver_lt "$INSTALLED_VERSION" "$FIXED_VERSION"; then
  echo "VULNERABLE: Google Chrome $INSTALLED_VERSION < $FIXED_VERSION"
  exit 1
else
  echo "PATCHED: Google Chrome $INSTALLED_VERSION >= $FIXED_VERSION"
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: treat this as MEDIUM, not as a drop-everything Chrome emergency. Query your Linux and ChromeOS fleet, identify anything below the fixed train, and fold remediation into normal browser hygiene; there is no noisgate mitigation SLA — go straight to the 365-day remediation window, and close the version gap within the noisgate remediation SLA of 365 days. If your environment has a large Linux developer population or ChromeOS-heavy estate, pull those groups forward in the queue, but this does not justify an enterprise-wide emergency patch wave absent new exploitation evidence.

Sources

  1. NVD CVE-2026-9117
  2. Google Chrome Releases - Stable Channel Update for Desktop (May 19, 2026)
  3. Chromium Site Isolation
  4. Chromium process sandboxes by platform
  5. Chromium multi-process architecture
  6. CISA Known Exploited Vulnerabilities Catalog
  7. FIRST EPSS overview
  8. Chromium issue reference from release notes
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.