ZeroHour

CVE-2026-55158

niche

Shell Command Injection via Branch Names in Conflibot GitHub Action

CVSS 3.1
9.1 critical
EPSS
Published
()
Modified
AI analysis

Conflibot, a GitHub Action that warns about merge conflicts in other open pull requests, builds git checkout/merge/format-patch commands by interpolating the attacker-controlled head.ref branch name into strings passed to exec, allowing shell command injection. Because the documented configuration runs on the pull_request_target trigger, any attacker can open a pull request (including from a fork) whose branch name contains shell metacharacters, and the injected commands execute automatically without any maintainer interaction. The code runs on the CI runner with access to base-repository secrets and a write-scoped GITHUB_TOKEN, enabling arbitrary command execution, secret/token exfiltration, and unauthorized pushes to the repository. Repositories using Conflibot versions prior to 1.2.1 (and any pre-2.0.0 v2 releases) are affected; the flaw is fixed in 1.2.1 and 2.0.0, which use execFile/spawn argument arrays and numeric pull-request refs. There is no known public proof of concept and no evidence of in-the-wild exploitation.

What to do: Upgrade the Action reference to v1.2.1 (or the v2.0.0+ line) and pin it to a commit SHA rather than a mutable branch. Audit past workflow runs for suspicious commands or unrecognized git activity around Conflibot steps, and rotate any secrets reachable from the runner plus the GITHUB_TOKEN if malicious runs are found. Review whether pull_request_target is required at all, since it grants fork-originated code paths access to base-repository secrets.

Affected
Conflibot project Conflibot GitHub Action (conflibot)all versions before 1.2.1 (1.x line) and any 2.x pre-releases before 2.0.0; fixed in 1.2.1 and 2.0.0
Estimated exposure
nicheunknown; plausibly tens to hundreds of GitHub repositories pinning this single-purpose Action — Conflibot is a niche, single-purpose conflict-warning GitHub Action and GitHub does not publish per-Action workflow-usage counts, so no reliable quantitative basis exists.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Conflibot warns in advance when merging a pull request will cause conflicts in other open pull requests. Prior to 1.2.1, src/index.ts builds git checkout, git merge, and git format-patch commands by interpolating the attacker-controlled pull request head.ref value into strings passed to exec. In the documented pull_request_target configuration, an attacker can open a pull request, including from a fork, whose branch name contains shell metacharacters, and the workflow automatically interprets those characters as commands without maintainer interaction. The commands execute on a runner with base-repository secrets and a write-scoped GITHUB_TOKEN, allowing arbitrary command execution, secret or token exfiltration, unauthorized pushes, and other token abuse. The fixed implementations in src/index.ts and src/conflibot.ts use execFile or spawn argument arrays, and the v2 line also uses numeric pull-request refs rather than branch names. This issue is fixed in versions 1.2.1 and 2.0.0.

Weakness
CWE-78
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

In the news

No ingested article mentions this CVE yet.