{"id":"CVE-2025-11148","aliases":["EUVD-2025-31701","GHSA-9c4g-fp4r-prrv"],"status":"published","title":"check-branches is vulnerable to command Injection","description":"All versions of the package check-branches are vulnerable to Command Injection check-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\r\rHowever, the library follows these conventions which can be abused:\r1. It trusts branch names as they are (plain text)\r2. It spawns git commands by concatenating user input\r\rSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.01403,"percentile":0.72932,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-77","CWE-78"],"published":"2025-09-30T05:00:06Z","modified":"2026-06-17T08:29:45Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"check-branches","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"0.0.19"}]}]},{"source":"osv","ecosystem":"npm","package":"check-branches","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"0.0.19"}]}]}],"references":[{"url":"https://security.snyk.io/vuln/SNYK-JS-CHECKBRANCHES-2766494","tags":["web"]},{"url":"https://gist.github.com/lirantal/054b4ad039a86c418f2c84e3e884d6ec","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-11148","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-9c4g-fp4r-prrv"},{"url":"https://github.com/puntorigen/check-branches","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-11148","description":"All versions of the package check-branches are vulnerable to Command Injection check-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\r\rHowever, the library follows these conventions which can be abused:\r1. It trusts branch names as they are (plain text)\r2. It spawns git commands by concatenating user input\r\rSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","status":"published","published":"2025-09-30T05:00:06.332Z","modified":"2025-09-30T19:06:21.373Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-78","CWE-78"],"updated_at":"2026-11-02T14:32:50.872559Z"}],"euvd":[{"id":"EUVD-2025-31701","description":"All versions of the package check-branches are vulnerable to Command Injection check-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\r\rHowever, the library follows these conventions which can be abused:\r1. It trusts branch names as they are (plain text)\r2. It spawns git commands by concatenating user input\r\rSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","status":"published","published":"2025-09-30T05:00:06Z","modified":"2025-09-30T19:06:21Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T20:31:37.600422Z"}],"ghsa":[{"id":"GHSA-9c4g-fp4r-prrv","title":"check-branches is vulnerable to command Injection","description":"All versions of the package check-branches are vulnerable to Command Injection.\n\ncheck-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\n\nHowever, the library follows these conventions which can be abused:\n1. It trusts branch names as they are (plain text)\n2. It spawns git commands by concatenating user input\n\nSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","status":"published","published":"2025-09-30T12:30:51Z","modified":"2025-10-03T18:22:22Z","cvss":[{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-77","CWE-78"],"updated_at":"2026-11-02T14:38:59.83883Z"}],"nvd":[{"id":"CVE-2025-11148","description":"All versions of the package check-branches are vulnerable to Command Injection check-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\r\rHowever, the library follows these conventions which can be abused:\r1. It trusts branch names as they are (plain text)\r2. It spawns git commands by concatenating user input\r\rSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","status":"published","published":"2025-09-30T11:37:38.883Z","modified":"2026-06-17T08:29:45.187Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-78"],"updated_at":"2026-11-02T14:11:33.36253Z"}],"osv":[{"id":"GHSA-9c4g-fp4r-prrv","title":"check-branches is vulnerable to command Injection","description":"All versions of the package check-branches are vulnerable to Command Injection.\n\ncheck-branches is a command-line tool that is interacted with locally, or via CI, to confirm no conflicts exist in git branches.\n\nHowever, the library follows these conventions which can be abused:\n1. It trusts branch names as they are (plain text)\n2. It spawns git commands by concatenating user input\n\nSince a branch name is potentially a user input - as users can create branches remotely via pull requests, or simply due to privileged access to a repository - it can effectively be abused to run any command.","status":"published","published":"2025-09-30T12:30:51Z","modified":"2025-10-03T18:22:21Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":9.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"critical"}],"cwes":["CWE-77","CWE-78"],"updated_at":"2026-11-02T15:46:43.524801Z"}]}}
