CVE-2016-3630 json
Mercurial arbitrary code execution vulnerability
published 2016-04-13 10 y ago modified 2026-06-17 4 mo ago also GHSA-9vjf-jjcq-3gh7 , PYSEC-2016-29 , EUVD-2016-0017
- cvss
- 8.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 4.9%
- EPSS 4.9% chance of exploitation in 30 days, percentile 92%
- public exploits
- 0
- none known
Summary
The binary delta decoder in Mercurial before 3.7.3 allows remote attackers to execute arbitrary code via a (1) clone, (2) push, or (3) pull command, related to (a) a list sizing rounding error and (b) short records.
Patch / fix
- pypi mercurial 3.7.3
- mercurial Debian 14, Debian 13, Debian 12 3.7.3-1
debian advisories DEBIAN-CVE-2016-3630
- mercurial Ubuntu 14.04 LTS 2.8.2-1ubuntu1.4
ubuntu advisories UBUNTU-CVE-2016-3630
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- mercurial SLE Software Development Kit 11 SP4 2.3.2-0.11.1
- mercurial SLE Software Development Kit 12 SP1, SLE Software Development Kit 12 2.8.2-6.1
suse advisories SUSE-SU-2016:1011-1SUSE-SU-2016:1010-1
- mercurial openSUSE Tumbleweed 4.0-1.1
opensuse advisories openSUSE-SU-2024:10070-1
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2016-3630 updated cvss 6.8
mercurial: remote code execution in binary delta decoding
-
Red Hat Enterprise Linux 6 mercurial, mercurial-hgk, emacs-mercurial, emacs-mercurial-el Red Hat Enterprise Linux 7 mercurial, mercurial-hgk, emacs-mercurial, emacs-mercurial-elnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
4.85% chance of exploitation in the next 30 days, higher than 92% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 6.8 | AV:N/AC:M/Au:N/C:P/I:P/A:P |
| GitHub | 3.0 | 8.8 | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | mercurial | <3.7.3 |
3.7.3 |
Classification
- Weakness
-
- CWE-19 Data Processing Errors
References
-
lists.fedoraproject.org
/pipermail/package-announce/2016-April/181505.html
vendor-advisory, web, mailing-list
-
security.gentoo.org
/glsa/201612-19
vendor-advisory, web, third-party-advisory, advisory
-
debian.org
/security/2016/dsa-3542
vendor-advisory, web, third-party-advisory, advisory
-
lists.opensuse.org
/opensuse-security-announce/2016-04/msg00018.html
vendor-advisory, web, mailing-list
-
lists.opensuse.org
/opensuse-security-announce/2016-04/msg00017.html
vendor-advisory, web, mailing-list
-
lists.opensuse.org
/opensuse-security-announce/2016-04/msg00016.html
vendor-advisory, web, mailing-list
-
lists.fedoraproject.org
/pipermail/package-announce/2016-April/181542.html
vendor-advisory, web, mailing-list
-
lists.opensuse.org
/opensuse-security-announce/2016-04/msg00043.html
vendor-advisory, web, mailing-list
-
mercurial-scm.org
/wiki/WhatsNew#Mercurial_3.7.3_.282016-3-29.29
web, vendor-advisory
-
selenic.com
/repo/hg-stable/rev/b9714d958e89
web, third-party-advisory
-
selenic.com
/repo/hg-stable/rev/b6ed2505d6cf
web, third-party-advisory
-
oracle.com
/technetwork/topics/security/bulletinapr2016-2952098.html
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2016-3630
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/mercurial/PYSEC-2016-29.yaml
web
-
github.com
/advisories/GHSA-9vjf-jjcq-3gh7
advisory
Sources
- CVE List CVE-2016-3630
- GitHub Advisory GHSA-9vjf-jjcq-3gh7
- NVD CVE-2016-3630
- OSV PYSEC-2016-29
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.