Google has released Chrome 157 (157.0.8103.46) for Android, rolling out via Google Play over the coming days. Critically, Google's advisory confirms that this Android release carries the same security fixes as the corresponding desktop builds — Windows and Mac 157.0.8103.38/.39, and Linux 157.0.8103.38. While the release notes characterize this as a stability and performance update and point to the Git log for the full change list, the parity statement is the detail defenders should focus on: any security-relevant patch in the desktop 157 branch is now landing on the world's largest mobile browser install base.
From an IR and vulnerability management perspective, Chrome updates deserve the same urgency as OS-level patches. Chrome is the single most attacked client application in enterprise environments, and the V8 JavaScript engine plus the Blink rendering pipeline have historically been the highest-value targets for drive-by exploitation, watering-hole campaigns, and chained zero-days used by commercial spyware vendors and nation-state actors against mobile targets. When Google ships a synchronized release across desktop and Android, the correct assumption is that the underlying fixes address vulnerabilities reachable through web content — meaning every unmanaged, unpatched device is a viable target until the update lands.
Technical Analysis
Affected Products and Versions
| Platform | Fixed Version |
|---|---|
| Android | 157.0.8103.46 |
| Windows / macOS | 157.0.8103.38 / .39 |
| Linux | 157.0.8103.38 |
Any Chrome installation on these platforms running a build earlier than 157.0.8103.38 (desktop) or 157.0.8103.46 (Android) should be treated as unpatched and prioritized for remediation. Android presents a particular challenge: Google Play staged rollouts mean devices receive the update over several days, and devices with Play auto-update disabled, de-Googled builds, or fleet devices pinned by MDM policy will not update without intervention.
Why Synchronized Desktop/Android Releases Matter
Chrome's Android and desktop builds share the V8 JavaScript engine, the Blink renderer, the network stack, and large portions of the sandboxing architecture. When Google states that Android releases contain the same security fixes as their desktop counterparts, it confirms the patched components are in this shared core. The practical implications for defenders:
- Exploit code portability. V8 type-confusion and use-after-free bugs are frequently portable across architectures with modest modification. A fix visible in the desktop Git log telegraphs the vulnerable code path to anyone diffing binaries — including exploit developers.
- Patch diffing window. Chrome's source is public. The delta between 156.x and 157.0.8103.38 is trivially diffable, and mature exploit brokers routinely reverse Chrome security patches into working exploits within days of disclosure.
- Mobile-specific impact. On Android, successful renderer exploitation is a common initial access vector for spyware implant delivery. Even where the Chrome sandbox holds, the renderer compromise enables credential theft, session token extraction, and second-stage sandbox escape attempts.
Exploitation Status
This advisory does not enumerate CVE identifiers or confirm in-the-wild exploitation; Google describes stability and performance improvements and defers the change list to the Git log, with security fix parity to the desktop release. Per standard Chrome release practice, detailed vulnerability disclosures in the accompanying desktop stable channel post are often held back until the user base has had time to patch. Treat this as a proactive patch cycle, but do not deprioritize it — the absence of a named CVE in the announcement does not mean the absence of security fixes, and the synchronized release pattern is consistent with Google's handling of fixes it prefers to land quietly before full disclosure.
Detection & Response
You cannot signature-detect "an unpatched CVE" without a disclosed indicator, but you can (1) inventory and hunt for outdated Chrome builds across your fleet, and (2) detect the behavioral artifacts of successful browser exploitation — renderer compromise leading to child process execution, which is where virtually every real-world Chrome exploit chain becomes visible on the endpoint.
SIGMA Rules
---
title: Chrome Renderer Spawning Shell or Script Interpreter
id: 3f8a2b14-7c51-4e29-b6d2-9a1e4c5f7d08
status: experimental
description: Detects chrome.exe spawning cmd, powershell, wscript, mshta, or rundll32 — a hallmark of successful browser exploit chains escaping the renderer. Relevant during patch-gap windows such as the Chrome 157 rollout.
references:
- https://attack.mitre.org/techniques/T1059/
- https://attack.mitre.org/techniques/T1203/
author: Security Arsenal
date: 2026/11/05
tags:
- attack.execution
- attack.t1059
- attack.t1203
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\chrome.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare enterprise browser extensions or SSO tooling launching helper processes; baseline by parent command line containing --type=renderer
level: high
---
title: Chrome Execution From Non-Standard Install Path
id: 91c4d7e2-2b36-4a58-9f1c-5e7a3d8b2f46
status: experimental
description: Detects chrome.exe executing outside standard installation directories, which may indicate a trojanized browser binary or a sideloaded fake updater deployed during update-window social engineering.
references:
- https://attack.mitre.org/techniques/T1036/
author: Security Arsenal
date: 2026/11/05
tags:
- attack.defense_evasion
- attack.t1036
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\chrome.exe'
filter_standard_paths:
Image|startswith:
- 'C:\Program Files\Google\Chrome\Application\'
- 'C:\Program Files (x86)\Google\Chrome\Application\'
- 'C:\Users\'
filter_user_path:
Image|contains: '\AppData\Local\Google\Chrome\Application\'
condition: selection and not (filter_standard_paths and filter_user_path)
falsepositives:
- Portable Chrome builds; developer workstations with custom Chromium builds
level: medium
KQL (Microsoft Sentinel / Defender)
This query inventories Chrome versions across your managed Windows fleet and flags any device still running a build older than the 157.0.8103.38 security baseline, then joins against process events to surface outdated browsers that have spawned suspicious child processes — the combination that demands immediate triage.
// Identify endpoints running Chrome builds older than 157.0.8103.38
let OutdatedChrome = DeviceFileEvents
| where FolderPath has @"\Google\Chrome\Application\" and FileName == "chrome.exe"
| summarize arg_max(TimeGenerated, *) by DeviceId, FolderPath
| extend ChromeVersion = tostring(extract(@"Application\\([0-9.]+)\\", 1, FolderPath))
| where isnotempty(ChromeVersion)
| extend MajorVersion = toint(split(ChromeVersion, ".")[0])
| where MajorVersion < 157
| project DeviceId, DeviceName, ChromeVersion;
OutdatedChrome
| join kind=leftouter (
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName =~ "chrome.exe"
| where FileName in~ ("cmd.exe","powershell.exe","pwsh.exe","mshta.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")
| project DeviceId, ChildProcess=FileName, ChildCommandLine=ProcessCommandLine, ProcessTime=TimeGenerated
) on DeviceId
| project DeviceName, ChromeVersion, ChildProcess, ChildCommandLine, ProcessTime
| sort by DeviceName asc
Velociraptor VQL
Use this artifact during an IR sweep or threat hunt to enumerate Chrome versions from installed binaries across a fleet, flagging anything below the 157.0.8103.38 baseline for targeted remediation.
-- Hunt: enumerate Chrome install versions and flag pre-157 builds
SELECT FullPath,
basename(path=FullPath) AS Binary,
version_information(path=FullPath).ProductVersion AS ChromeVersion,
Mtime AS BinaryModified
FROM glob(globs='C:/Program Files*/Google/Chrome/Application/*/chrome.exe')
WHERE ChromeVersion < '157.0.8103.38'
Remediation Script
Run this via your RMM or as a scheduled task to verify Chrome patch state on Windows endpoints and force an update check where the build is behind the 157 baseline. For Android fleet devices, enforce the update through your MDM (see Remediation below).
# Verify Chrome version against the 157.0.8103.38 security baseline
$baseline = [version]"157.0.8103.38"
$chromePaths = @(
"$env:ProgramFiles\Google\Chrome\Application\chrome.exe",
"${env:ProgramFiles(x86)}\Google\Chrome\Application\chrome.exe",
"$env:LOCALAPPDATA\Google\Chrome\Application\chrome.exe"
)
foreach ($path in $chromePaths) {
if (Test-Path $path) {
$installed = [version](Get-Item $path).VersionInfo.ProductVersion
Write-Output "Chrome found: $path | Version: $installed"
if ($installed -lt $baseline) {
Write-Warning "OUTDATED: $installed is below baseline $baseline"
# Trigger Chrome's update mechanism via the Google Update service
Start-Process "$env:ProgramFiles(x86)\Google\Update\GoogleUpdate.exe" -ArgumentList "/ua /installsource scheduler" -ErrorAction SilentlyContinue
Write-Output "Update triggered. Re-verify after next browser restart."
exit 1
} else {
Write-Output "COMPLIANT: Chrome is at or above $baseline"
exit 0
}
}
}
Write-Warning "Chrome not found in standard install paths on this host."
exit 2
Remediation
- Deploy Chrome 157.0.8103.46 to all Android devices. For managed fleets, push the update immediately through your MDM/EMM platform (Intune, Workspace ONE, Google managed Play). Do not wait for the staged Google Play rollout — force the app update policy to "always update" for Chrome on corporate and BYOD work profiles.
- Confirm desktop parity. Verify Windows and macOS endpoints reach 157.0.8103.38/.39 and Linux reaches 157.0.8103.38. Chrome updates require a browser restart to take effect — enforce restart deadlines through enterprise policy (
RelaunchNotification,RelaunchNotificationPeriod) so patched binaries actually load. - Verify, don't assume. Run the version audit script above or the VQL artifact across your fleet and report on stragglers. Devices with auto-update disabled, broken Google Update services, or kiosk-style pinned builds will silently remain vulnerable.
- Audit Android update posture. Devices with Play auto-update disabled or running vendor-skinned Chromium forks may not receive this build on the same cadence. Flag any Android device in your MDM inventory still reporting Chrome < 157.0.8103.46 after 72 hours.
- Heighten monitoring during the patch gap. Enable the Sigma rules above and review the KQL join output. Browser exploitation attempts typically spike in the days following a public release as patch diffing matures.
- Monitor the desktop advisory. Watch the Chrome Releases blog for the corresponding Stable Channel desktop update post, which will enumerate the specific CVEs fixed in the 157 branch. Cross-reference any disclosed CVEs against CISA KEV and adjust priority if active exploitation is confirmed.
The disciplined play here is boring but effective: patch fast, verify relentlessly, and watch for the behavioral signatures of renderer compromise while your fleet converges on the fixed build.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.