{"id":"GHSA-mv2w-4jqc-6fg4","summary":"Command injection in libvcs and vcspull","details":"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.","aliases":["CVE-2022-21187","PYSEC-2022-163","PYSEC-2026-563","SNYK-PYTHON-LIBVCS-2421204"],"modified":"2026-06-29T12:26:21.761856147Z","published":"2022-03-15T00:00:53Z","database_specific":{"github_reviewed_at":"2022-03-15T17:05:10Z","nvd_published_at":"2022-03-14T18:15:00Z","cwe_ids":["CWE-74","CWE-77"],"severity":"CRITICAL","github_reviewed":true},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-21187"},{"type":"WEB","url":"https://github.com/vcs-python/libvcs/pull/306"},{"type":"WEB","url":"https://github.com/vcs-python/vcspull/commit/e1b77128a1fa0754625b5f43d8bc47956f21f33e"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/libvcs/PYSEC-2022-163.yaml"},{"type":"WEB","url":"https://github.com/vcs-python/libvcs/blob/master/CHANGES#libvcs-0111-2022-03-12"},{"type":"WEB","url":"https://github.com/vcs-python/libvcs/blob/v0.11.1/CHANGES%23libvcs-0111-2022-03-12"},{"type":"WEB","url":"https://github.com/vcs-python/vcspull/blob/master/CHANGES#vcspull-1111-2022-03-12"},{"type":"WEB","url":"https://snyk.io/vuln/SNYK-PYTHON-LIBVCS-2421204"}],"affected":[{"package":{"name":"libvcs","ecosystem":"PyPI","purl":"pkg:pypi/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"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/03/GHSA-mv2w-4jqc-6fg4/GHSA-mv2w-4jqc-6fg4.json"}},{"package":{"name":"vcspull","ecosystem":"PyPI","purl":"pkg:pypi/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"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/03/GHSA-mv2w-4jqc-6fg4/GHSA-mv2w-4jqc-6fg4.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"},{"type":"CVSS_V4","score":"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"}]}