High severityNVD Advisory· Published Aug 6, 2013· Updated Apr 29, 2026
CVE-2013-1630
CVE-2013-1630
Description
pyshop before 0.7.1 uses HTTP to retrieve packages from the PyPI repository, and does not perform integrity checks on package contents, which allows man-in-the-middle attackers to execute arbitrary code via a crafted response to a download operation.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
pyshopPyPI | < 0.7.1 | 0.7.1 |
Affected products
7cpe:2.3:a:guillaume_gauvrit:pyshop:*:*:*:*:*:*:*:*+ 6 more
- cpe:2.3:a:guillaume_gauvrit:pyshop:*:*:*:*:*:*:*:*range: <=0.7
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.1:*:*:*:*:*:*:*
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.2:*:*:*:*:*:*:*
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.3:*:*:*:*:*:*:*
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.4:*:*:*:*:*:*:*
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.5:*:*:*:*:*:*:*
- cpe:2.3:a:guillaume_gauvrit:pyshop:0.6:*:*:*:*:*:*:*
Patches
1ffadb0bcdef1Improve security when downloading from pypi
4 files changed · +3472 −3
MANIFEST.in+1 −1 modified@@ -1,2 +1,2 @@ include *.txt *.ini *.cfg *.rst -recursive-include pyshop *.ico *.png *.css *.scss *.txt *.js *.html *.pot *.po +recursive-include pyshop *.ico *.png *.css *.scss *.txt *.js *.html *.pot *.po *.pem
pyshop/helpers/download.py+6 −1 modified@@ -33,7 +33,12 @@ def __call__(self, value, system): if not os.path.exists(dir_): os.makedirs(dir_, 0750) - resp = requests.get(value['url']) + if value['url'].startswith('https://pypi.python.org'): + verify = os.path.join(os.path.dirname(__file__), 'pypi.pem') + else: + verify = value['url'].startswith('https:') + + resp = requests.get(value['url'], verify=verify) with open(f, 'wb') as rf: rf.write(resp.content) return resp.content
pyshop/helpers/pypi.pem+3460 −0 addedpyshop/views/repository.py+5 −1 modified@@ -6,8 +6,12 @@ def get_release_file(root, request): session = DBSession() f = ReleaseFile.by_id(session, int(request.matchdict['file_id'])) + url = f.url + if url.startswith('http://pypi.python.org'): + url = 'https' + url[4:] + rv = {'id': f.id, - 'url': f.url, + 'url': url, 'filename': f.filename, } f.downloads += 1
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- github.com/advisories/GHSA-f594-f3v3-g649ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2013-1630ghsaADVISORY
- www.reddit.com/r/Python/comments/17rfh7/warning_dont_use_pip_in_an_untrusted_network_aghsaWEB
- github.com/mardiros/pyshop/blob/master/CHANGES.txtnvdWEB
- github.com/mardiros/pyshop/commit/ffadb0bcdef1e385884571670210cfd6ba351784nvdWEB
- github.com/pypa/advisory-database/tree/main/vulns/pyshop/PYSEC-2013-10.yamlghsaWEB
- www.reddit.com/r/Python/comments/17rfh7/warning_dont_use_pip_in_an_untrusted_network_a/nvd
News mentions
0No linked articles in our index yet.