Conflibot: Command injection via crafted pull request branch names under pull_request_target
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-55158
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 07:54 UTC · Revision 1
Source evidence
Conflibot: Command injection via crafted pull request branch names under pull_request_target
core-osv · Original sourcePublished 15 Sept 2026, 14:47 UTC
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.
osv:CVE-2026-55158
Complete source record
{
"id": "0ddcacf7a48438c354a7ae185a7d035788f37e474a0770679609e7d3bcb667f7",
"url": "https://osv.dev/vulnerability/CVE-2026-55158",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Conflibot: Command injection via crafted pull request branch names under pull_request_target",
"summary": "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.",
"evidence": "osv:CVE-2026-55158",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-55158",
"aliases": [
"CVE-2026-55158",
"GHSA-2qvg-qr73-mqxp"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/wktk/conflibot",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "59e255c49c920fd6b67471ab9ef3bf194439a3f2"
},
{
"fixed": "0107ac6a4575ea200d0b92287ea58f975be9505d"
},
{
"fixed": "401bde09ac47fb11375ecf9fb663970532995776"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.2.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "0107ac6a4575ea200d0b92287ea58f975be9505d"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "59e255c49c920fd6b67471ab9ef3bf194439a3f2"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "59e255c49c920fd6b67471ab9ef3bf194439a3f2"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.2.1"
},
{
"range": [
{
"fixed": "401bde09ac47fb11375ecf9fb663970532995776"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.0.0"
}
]
}
}
],
"versions": [
"v1.2.0",
"v1.1.2-pre2",
"v1.1.2-pre1",
"v1.1.1",
"v1.1.0",
"v1.0.1",
"v1.0.0",
"v0.3.0",
"v0.2.0",
"v0.1.0",
"v0.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55158.json"
}
}
],
"modified": "2026-10-28T02:30:33.602973364Z",
"provider": "osv",
"references": [
"https://github.com/wktk/conflibot/releases/tag/v1.2.1",
"https://github.com/wktk/conflibot/releases/tag/v2.0.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55158.json",
"https://github.com/wktk/conflibot/security/advisories/GHSA-2qvg-qr73-mqxp",
"https://nvd.nist.gov/vuln/detail/CVE-2026-55158",
"https://github.com/wktk/conflibot/commit/0107ac6a4575ea200d0b92287ea58f975be9505d",
"https://github.com/wktk/conflibot/commit/59e255c49c920fd6b67471ab9ef3bf194439a3f2",
"https://github.com/wktk/conflibot/pull/329"
],
"provider_metadata": {
"cwe_ids": [
"CWE-78"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55158.json"
}
},
"related_cves": [
{
"value": "CVE-2026-55158",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 500991,
"published_at": "2026-09-15T14:47:58.804+00:00"
}