CyberRota Analysis
AI-GeneratedGitHub's Conflibot prior to version 1.2.1 is vulnerable to command injection due to improper handling of user-controlled input in pull request branch names, allowing attackers to execute arbitrary commands on the CI/CD runner. This critical vulnerability can lead to unauthorized access to secrets, token exfiltration, and malicious code execution, posing significant risks to repositories using the affected versions. Organizations utilizing GitHub workflows with Conflibot should prioritize upgrading to versions 1.2.1 or 2.0.0 to mitigate these risks.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD 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.