{"id":"CVE-2022-21187","aliases":["EUVD-2022-0137","GHSA-mv2w-4jqc-6fg4","PYSEC-2022-163","PYSEC-2026-563","SNYK-PYTHON-LIBVCS-2421204"],"status":"published","title":"Command Injection","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.03624,"percentile":0.89617,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-74","CWE-77","CWE-88"],"published":"2022-03-14T17:15:17Z","modified":"2026-10-28T02:30:22Z","fixes":[{"ecosystem":"PyPI","package":"libvcs","fixed_in":["0.11.1"],"sources":["ghsa","osv"]},{"ecosystem":"PyPI","package":"vcspull","fixed_in":["1.11.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"libvcs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.1"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"vcspull","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"libvcs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.1"}]}],"versions":["0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.10.0","0.10.1","0.11.0","0.2.0","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.1.post1","0.3.2","0.3.3","0.4.0","0.4.0rc1","0.4.0rc2","0.4.1","0.4.2","0.4.3","0.4.4","0.5.0","0.5.0a1","0.5.0a2","0.9.0","0.9.0a1","0.9.0a2"]},{"source":"osv","ecosystem":"PyPI","package":"vcspull","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.1"}]}],"versions":["0.0.10","0.0.6","0.0.7","0.0.8","0.0.8.1","0.0.8.2","0.0.8.3","0.0.8.4","0.0.9","0.0.9.1","0.1.0","0.1.1","0.2.0","0.2.1","0.2.2","0.9.0","1.0.0","1.0.1","1.0.2","1.0.3","1.1.0","1.10.0","1.11.0","1.2.0","1.3.0","1.3.0.post1","1.3.0.post2","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.5.0a1","1.5.0a2","1.5.0a3","1.5.0a4","1.6.0","1.6.1","1.7.0","1.7.0.post0","1.8.0","1.8.1","1.9.0","1.9.0.post1","1.9.0.post2"]},{"source":"osv","ecosystem":"PyPI","package":"libvcs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.11.1"}]}],"versions":["0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.10.0","0.10.1","0.11.0","0.2.0","0.2.1","0.2.2","0.2.3","0.3.0","0.3.1","0.3.1.post1","0.3.2","0.3.3","0.4.0","0.4.0rc1","0.4.0rc2","0.4.1","0.4.2","0.4.3","0.4.4","0.5.0","0.5.0a1","0.5.0a2","0.9.0","0.9.0a1","0.9.0a2"]},{"source":"osv","ecosystem":"PyPI","package":"vcspull","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.1"}]}],"versions":["0.0.10","0.0.6","0.0.7","0.0.8","0.0.8.1","0.0.8.2","0.0.8.3","0.0.8.4","0.0.9","0.0.9.1","0.1.0","0.1.1","0.2.0","0.2.1","0.2.2","0.9.0","1.0.0","1.0.1","1.0.2","1.0.3","1.1.0","1.10.0","1.11.0","1.2.0","1.3.0","1.3.0.post1","1.3.0.post2","1.3.1","1.4.0","1.4.1","1.4.2","1.4.3","1.5.0","1.5.0a1","1.5.0a2","1.5.0a3","1.5.0a4","1.6.0","1.6.1","1.7.0","1.7.0.post0","1.8.0","1.8.1","1.9.0","1.9.0.post1","1.9.0.post2"]}],"products":[{"vendor":"libvcs_project","product":"libvcs"}],"references":[{"url":"https://snyk.io/vuln/SNYK-PYTHON-LIBVCS-2421204","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/vcs-python/libvcs/blob/v0.11.1/CHANGES%23libvcs-0111-2022-03-12","tags":["x_refsource_MISC","x_transferred","Release Notes","Third Party Advisory","web"]},{"url":"https://github.com/vcs-python/libvcs/pull/306","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-21187","tags":["advisory"]},{"url":"https://github.com/vcs-python/vcspull/commit/e1b77128a1fa0754625b5f43d8bc47956f21f33e","tags":["web"]},{"url":"https://github.com/vcs-python/libvcs/blob/master/CHANGES#libvcs-0111-2022-03-12","tags":["web"]},{"url":"https://github.com/vcs-python/vcspull/blob/master/CHANGES#vcspull-1111-2022-03-12","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/libvcs/PYSEC-2022-163.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-mv2w-4jqc-6fg4","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/21xxx/CVE-2022-21187.json","tags":["advisory"]},{"url":"https://pypi.org/project/vcspull","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2022-21187","title":"Command Injection","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-14T17:15:17.02Z","modified":"2024-09-16T18:13:45.548Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"updated_at":"2026-11-02T14:34:29.057251Z"}],"euvd":[{"id":"EUVD-2022-0137","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-14T17:15:17Z","modified":"2024-09-16T18:13:45Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-03T00:55:34.393488Z"}],"ghsa":[{"id":"GHSA-mv2w-4jqc-6fg4","title":"Command injection in libvcs and vcspull","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-15T00:00:53Z","modified":"2024-09-27T21:36:54Z","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":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-74","CWE-77"],"updated_at":"2026-11-02T14:38:06.988799Z"}],"nvd":[{"id":"CVE-2022-21187","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-14T18:15:07.917Z","modified":"2026-06-17T04:25:42.453Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"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":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-88"],"updated_at":"2026-11-02T14:07:13.7085Z"}],"osv":[{"id":"CVE-2022-21187","title":"Command Injection","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-14T17:15:17.02Z","modified":"2026-10-28T02:30:22.609657978Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:23.655778Z"},{"id":"GHSA-mv2w-4jqc-6fg4","title":"Command injection in libvcs and vcspull","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-15T00:00:53Z","modified":"2026-06-29T12:26:21.761856147Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"},{"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-74","CWE-77"],"updated_at":"2026-11-02T15:46:52.170928Z"},{"id":"PYSEC-2026-563","title":"Command injection in libvcs and vcspull","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2026-06-29T11:50:31.953566Z","modified":"2026-07-01T20:23:11.167334Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"},{"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"}],"updated_at":"2026-11-02T15:52:57.671918Z"},{"id":"PYSEC-2022-163","description":"The package libvcs before 0.11.1 are vulnerable to Command Injection via argument injection. When calling the update_repo function (when using hg), the url parameter is passed to the hg clone command. By injecting some hg options it was possible to get arbitrary command execution.","status":"published","published":"2022-03-14T18:15:00Z","modified":"2026-06-29T12:26:21.761856147Z","updated_at":"2026-11-02T15:52:53.449407Z"}]}}
