Last updated: June 2024
Severity: High
Affected Product: Google Chrome on Android (prior to 127..6533.88)
Component: Dawn (WebGPU)
Introduction
A newly disclosed security vulnerability, CVE-2024-7256, surfaced in Google Chrome’s Dawn engine on Android. It lets attackers run any code they want on your device just by getting you to visit a malicious web page. Here, we break down how it works, how attackers exploit it, and ways to stay safe. All explained in simple terms.
What is CVE-2024-7256?
CVE-2024-7256 is a security hole in the Dawn engine—a part of Chrome that lets websites use your phone’s graphics hardware through WebGPU. Due to insufficient data validation, a web page can send special data to Dawn that makes it run malicious code.
| Vulnerability Type | Remote Code Execution (RCE) |
|------------------------|--------------------------------------|
| Attack Vector | Malicious HTML page (remote) |
| Affected Versions | Chrome on Android < 127..6533.88 |
| Severity | High |
The Technical Details
Let’s keep things simple! Normally, Chrome checks data before passing it to Dawn. But, in vulnerable versions, not all data sent by a site is checked properly. A hacker can design an HTML page—which, when opened—sends dangerous data (like specially crafted WebGPU commands) to Dawn. This can cause:
Running arbitrary, attacker-controlled code
The core problem is insufficient input validation—Chrome trusted data it got from sites, when it should have checked more carefully.
Here’s a simplified demo of a possible attack payload
<!-- A sketch of a dangerous HTML snippet leveraging WebGPU -->
<script>
async function attackDawn() {
if (!navigator.gpu) return;
// Try to cause a buffer overflow
let adapter = await navigator.gpu.requestAdapter();
let device = await adapter.requestDevice();
// Craft a large, malformed buffer
let badSize = 2**32 - 1; // Huge size!
let buffer = device.createBuffer({
size: badSize, // Bad size not properly checked
usage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC,
mappedAtCreation: true
});
// Potentially write beyond the allocated space
const array = new Uint8Array(buffer.getMappedRange());
array[] = x41; // Overwrite target memory
}
attackDawn();
</script>
In vulnerable versions, Chrome might *not* catch that huge buffer size. Dawn then misbehaves, letting the attacker run code buried in the buffer.
Disclaimer: The above code illustrates the concept. Real-world exploits are much more complex.
Patched: Chrome 127..6533.88 (released late June 2024)
- Issue Report: Chromium Issue 337878863
- Release Notes: Chrome Releases Blog
- NVD Record: CVE-2024-7256
Conclusion
CVE-2024-7256 is another reminder that browsers are complex and attackers are creative. Keeping your browser up-to-date is the easiest way to stay safe. If you’re using Chrome on Android, make sure you’re on at least version 127..6533.88.
Stay safe—patch soon!
*This post is original and human-generated for clarity and exclusive insight. For the most accurate info, always check the official sources above.*
Timeline
Published on: 08/01/2024 18:15:26 UTC
Last modified on: 08/03/2024 18:35:04 UTC