Mar 16, 2026·7 min read·9 visits
CVE-2026-3909 is an actively exploited OOB write in Google Skia. It allows remote code execution when a victim visits a malicious page. Users must update Chrome to version 146.0.7680.75 immediately.
A critical out-of-bounds (OOB) write vulnerability exists in the Google Skia 2D graphics engine, affecting Chrome, ChromeOS, Android, and Flutter. This flaw allows remote attackers to execute arbitrary code within the renderer process via crafted HTML content and is actively exploited in the wild.
CVE-2026-3909 is a critical out-of-bounds (OOB) write vulnerability located in the Google Skia graphics engine. Skia operates as the core 2D rendering library for Google Chrome, ChromeOS, Android, and the Flutter application framework. The library handles the mathematical processing and rasterization of complex visual elements, including Scalable Vector Graphics (SVG), HTML5 Canvas instructions, and intricate CSS property rendering. The vulnerability allows a remote attacker to achieve arbitrary code execution within the restricted context of the browser's renderer process.
Exploitation of this vulnerability strictly requires user interaction, specifically directing a victim to a specially crafted malicious HTML page. Upon loading the payload, the browser engine passes malformed graphical instructions to Skia for rendering. The flaw manifests when the Skia engine fails to adequately validate the boundaries of a heap-allocated memory buffer before writing data associated with the graphical primitives. This failure results in the corruption of adjacent memory regions within the renderer's address space.
This vulnerability holds a CVSS v3.1 score of 8.8 and is classified under CWE-787 (Out-of-bounds Write). Google's Threat Analysis Group (TAG) confirmed active, in-the-wild exploitation of this flaw prior to public disclosure. The weaponization of this vulnerability represents a severe threat given the ubiquitous nature of the Chrome browser and the underlying Chromium engine.
The widespread integration of the Skia library across multiple operating systems and third-party application frameworks makes the attack surface exceptionally broad. Because Skia operates deep within the rendering pipeline, traditional network-level filtering is largely ineffective against encrypted HTTPS payloads, necessitating immediate patch deployment across all affected execution environments.
The core defect resides in the memory allocation and boundary enforcement logic within Skia's graphics rendering pipeline. When parsing specific, highly complex graphical primitives—such as malformed path coordinates or non-standard SVG transformation matrices—the engine allocates a destination buffer intended to hold the processed pixel data. The vulnerability triggers when the allocated heap buffer is undersized relative to the actual volume of continuous data generated during the rendering operation.
Because the internal rendering loop lacks sufficient runtime bounds checks, the Skia engine proceeds to write the excess generated data beyond the boundary of the allocated heap chunk. This out-of-bounds write predictably corrupts adjacent memory regions. In modern browser architectures, the heap often contains critical structural data alongside application data, including object pointers, virtual method tables (v-tables), or length fields for subsequent arrays.
Attackers meticulously craft the input SVG or Canvas elements to control both the size of the initial allocation and the exact byte contents of the overflowed data. Through precise heap grooming techniques, an attacker ensures that a targeted, sensitive browser object resides immediately adjacent to the vulnerable buffer. Overwriting this specific adjacent object provides the attacker with a reliable memory corruption primitive.
This controlled memory corruption primitive serves as the critical foundation for bypassing modern memory protection features. By successfully manipulating pointer references or array lengths, the attacker gains arbitrary read and write capabilities within the renderer's memory space, effectively neutralizing Address Space Layout Randomization (ASLR) and Data Execution Prevention (DEP).
Exploitation of CVE-2026-3909 observed in the wild involves a highly sophisticated exploit chain, pairing this Skia vulnerability with CVE-2026-3910, a separate zero-day flaw located in the V8 JavaScript engine. Skia resides entirely within the highly restricted Chrome renderer process, meaning an isolated Skia exploit only grants execution control over the sandboxed renderer. To achieve full system compromise, threat actors must subsequently escape these operating system-level sandbox constraints.
The attack sequence initiates when the victim's browser processes the malicious HTML payload. The Skia OOB write is triggered first, executing the precise heap grooming strategy to corrupt specific object pointers in the renderer's memory space. This initial corruption grants the attacker the foundational arbitrary read and write primitives. The exploit payload then utilizes these primitives to map the memory layout and construct a customized execution environment.
Once complete control of the renderer process is established, the payload shifts execution execution to the second stage of the exploit chain. The V8 vulnerability (CVE-2026-3910) is deployed to manipulate the JavaScript engine's execution context. This secondary vulnerability provides the specific logic required to bypass the inter-process communication (IPC) restrictions enforced by the Chrome sandbox broker.
The combination of the memory corruption primitive from Skia and the execution logic from V8 allows the threat actor to pivot from a restricted browser tab to the host operating system. The successful execution of this full chain results in the deployment of arbitrary payloads, such as persistent backdoors or data exfiltration implants, operating with the privileges of the compromised user account.
The successful exploitation of CVE-2026-3909 results in a severe breach of system integrity, confidentiality, and availability. Isolated code execution within the renderer process immediately exposes all data handled by that specific browser session, including authentication tokens, session cookies, and sensitive user input. When combined with a sandbox escape, the impact expands to complete host takeover, allowing the installation of persistent malware or enabling lateral movement within a corporate network environment.
The vulnerability's Exploit Prediction Scoring System (EPSS) score is 0.2712, placing it in the 96.31st percentile of tracked vulnerabilities. This metric indicates a remarkably high probability of continued, widespread exploitation over the next 30 days. The active status of the exploit, formally documented by Google TAG, confirms that advanced persistent threat (APT) groups have successfully weaponized the flaw for targeted operational campaigns.
In response to the active exploitation, the Cybersecurity and Infrastructure Security Agency (CISA) added CVE-2026-3909 to its Known Exploited Vulnerabilities (KEV) catalog on March 13, 2026. This federal mandate requires all civilian executive branch agencies to apply the necessary patches by March 27, 2026. Organizations operating outside the federal government are strongly advised to adopt the exact same timeline, prioritizing endpoints with unrestricted internet access.
The blast radius of this vulnerability extends beyond traditional desktop web browsers. Because the Skia engine powers the UI rendering for Android and the cross-platform Flutter framework, numerous mobile and desktop applications face exposure. Any application rendering untrusted web content via embedded web views without strict sandboxing controls remains highly vulnerable to the exact same attack vectors.
The primary and only definitive mitigation for CVE-2026-3909 is the immediate deployment of Google Chrome version 146.0.7680.75 for Windows, macOS, and Linux endpoints. System administrators must ensure that enterprise browser auto-update mechanisms are functioning without interruption. Furthermore, organizations must enforce policies requiring users to actively restart their browsers, as the patched binaries are only loaded into memory upon a complete application restart.
For ChromeOS and Android devices, system administrators must deploy the corresponding system-level security patches, specifically targeting the March 2026 security update rollouts. Mobile Device Management (MDM) platforms should be utilized to query device compliance and quarantine endpoints failing to install the mandated updates within the established patching window.
Software developers utilizing the Flutter framework or embedding the Skia library directly into custom applications must immediately audit their dependency trees. Developers must update the Skia engine module to the patched revision corresponding to the Chromium 146.0.7680.75 release. Recompilation and rapid redeployment of these updated binaries to app stores or enterprise distribution platforms are absolutely necessary to eliminate the vulnerability from third-party application stacks.
Security operations centers (SOC) should implement enhanced monitoring targeting endpoint behavioral anomalies. While specific exploit payloads remain unpublished by threat intelligence teams, telemetry indicating unexpected child processes spawning from browser renderer executables serves as a high-fidelity indicator of compromise. Security Information and Event Management (SIEM) rules should alert on unexpected access violations or rapid, repeated crashes in the Chrome renderer process, as these events frequently precede successful exploitation attempts.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H| Product | Affected Versions | Fixed Version |
|---|---|---|
Google Chrome (Desktop) Google | < 146.0.7680.75 | 146.0.7680.75 |
| Attribute | Detail |
|---|---|
| CWE ID | CWE-787 |
| Attack Vector | Network |
| CVSS Score | 8.8 (High) |
| EPSS Percentile | 96.31% |
| Impact | Remote Code Execution |
| Exploit Status | Active / Weaponized |
| KEV Status | Listed |
Out-of-bounds Write