CVE-2018-13346
Mercurial Improper Input Validation vulnerability
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.5
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
CVE-2018-13346- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:P/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
CVE List No score
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
CVE-2018-13346- Updated
- 2026-11-02
EUVDEUVD-2018-0095 No score
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
EUVD-2018-0095- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-9xv4-r2hf-26gh
8.7
Mercurial Improper Input Validation vulnerability
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
GHSA-9xv4-r2hf-26gh- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
7.5
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
CVE-2018-13346- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2018-13346
7.5
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
DEBIAN-CVE-2018-13346- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 9 moreShow less
OSVGHSA-9xv4-r2hf-26gh
8.7
Mercurial Improper Input Validation vulnerability
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
GHSA-9xv4-r2hf-26gh- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVRHSA-2019:2276
7.5
Red Hat Security Advisory: mercurial security update
- Record
RHSA-2019:2276- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2018-13346
7.5
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
UBUNTU-CVE-2018-13346- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVMGASA-2018-0355 No score
Updated mercurial packages fix security vulnerabilities
This update provides mercurial version 4.6.2 and fixes the following security issues:
Fix the mpatch_apply function in mpatch.c that incorrectly proceeds in cases where the fragment start is past the end of the original data (CVE-2018-13346).
Fix mpatch.c that mishandles integer addition and subtraction (CVE-2018-13347).
Fix the mpatch_decode function in mpatch.c that mishandles certain situations where there should be at least 12 bytes remaining after the current position in the patch data (CVE-2018-13348).
Remote attackers may bypass HTTP server permissions via batch wire protocol commands(CVE-2018-1000132).
- Record
MGASA-2018-0355- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10586-1 No score
mercurial-5.9.1-2.1 on GA media
These are all security issues fixed in the mercurial-5.9.1-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10586-1- Updated
- 2026-11-02
OSVPYSEC-2018-88 No score
The mpatch_apply function in mpatch.c in Mercurial before 4.6.1 incorrectly proceeds in cases where the fragment start is past the end of the original data, aka OVE-20180430-0004.
- Record
PYSEC-2018-88- Updated
- 2026-11-02
OSVSUSE-SU-2018:1990-1 No score
Security update for mercurial
This update for mercurial fixes the following issues:
Security issues fixed:
- CVE-2018-13346: Fix mpatch_apply function in mpatch.c that incorrectly proceeds in cases where the fragment start is past the end of the original data (bsc#1100354).
- CVE-2018-13347: Fix mpatch.c that mishandles integer addition and subtraction (bsc#1100355).
- CVE-2018-13348: Fix the mpatch_decode function in mpatch.c that mishandles certain situations where there should be at least 12 bytes remaining after thecurrent position in the patch data (bsc#1100353).
- Record
SUSE-SU-2018:1990-1- Updated
- 2026-11-02
OSVSUSE-SU-2018:1996-1 No score
Security update for mercurial
This update for mercurial fixes the following issues:
Security issues fixed:
- CVE-2018-13346: Fix mpatch_apply function in mpatch.c that incorrectly proceeds in cases where the fragment start is past the end of the original data (bsc#1100354).
- CVE-2018-13347: Fix mpatch.c that mishandles integer addition and subtraction (bsc#1100355).
- CVE-2018-13348: Fix the mpatch_decode function in mpatch.c that mishandles certain situations where there should be at least 12 bytes remaining after thecurrent position in the patch data (bsc#1100353).
- Record
SUSE-SU-2018:1996-1- Updated
- 2026-11-02
OSVSUSE-SU-2018:1998-1 No score
Security update for mercurial
This update for mercurial fixes the following issues:
Security issues fixed:
- CVE-2018-13346: Fix mpatch_apply function in mpatch.c that incorrectly proceeds in cases where the fragment start is past the end of the original data (bsc#1100354).
- CVE-2018-13347: Fix mpatch.c that mishandles integer addition and subtraction (bsc#1100355).
- CVE-2018-13348: Fix the mpatch_decode function in mpatch.c that mishandles certain situations where there should be at least 12 bytes remaining after thecurrent position in the patch data (bsc#1100353).
- Record
SUSE-SU-2018:1998-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mercurialPyPI |
before 4.6.1 | 4.6.1 |
mercurialDebian:12 |
before 4.6.1-1 | 4.6.1-1 |
mercurialDebian:13 |
before 4.6.1-1 | 4.6.1-1 |
mercurialDebian:14 |
before 4.6.1-1 | 4.6.1-1 |
mercurialDebian:8 From an advisory covering 6 CVEs |
before 3.1.2-2+deb8u5, plus listed versions 3.1.2-23.1.2-2+deb8u13.1.2-2+deb8u23.1.2-2+deb8u33.1.2-2+deb8u4 |
3.1.2-2+deb8u5 |
mercurialDebian:9 From an advisory covering 6 CVEs |
before 4.0-1+deb9u2, plus listed versions 4.0-14.0-1+deb9u1 |
4.0-1+deb9u2 |
mercurialPyPI |
before 4.6.1, plus listed versions 0.8.10.90.9.10.9.20.9.3 Show 45 moreShow less0.9.40.9.51.01.0.11.0.21.11.1.11.1.21.21.2.11.31.3.11.41.4.11.4.21.4.31.51.5.11.5.21.5.31.5.41.61.6.11.6.21.6.31.6.41.71.7.11.7.21.7.31.7.51.81.8.11.8.21.8.31.8.41.91.9.11.9.21.9.32.02.0.12.0.22.12.1.1 |
4.6.1 |
mercurialMageia:5 From an advisory covering 4 CVEs |
before 4.6.2-1.mga5 | 4.6.2-1.mga5 |
mercurialMageia:6 From an advisory covering 4 CVEs |
before 4.6.2-1.mga6 | 4.6.2-1.mga6 |
emacs-mercurialRed Hat:enterprise_linux:7::client From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
Show 26 moreShow less
| Package | Affected | Fixed |
|---|---|---|
emacs-mercurial-elRed Hat:enterprise_linux:7::client From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurialRed Hat:enterprise_linux:7::client From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-debuginfoRed Hat:enterprise_linux:7::client From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-hgkRed Hat:enterprise_linux:7::client From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurialRed Hat:enterprise_linux:7::computenode From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurial-elRed Hat:enterprise_linux:7::computenode From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurialRed Hat:enterprise_linux:7::computenode From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-debuginfoRed Hat:enterprise_linux:7::computenode From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-hgkRed Hat:enterprise_linux:7::computenode From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurialRed Hat:enterprise_linux:7::server From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-debuginfoRed Hat:enterprise_linux:7::server From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurialRed Hat:enterprise_linux:7::server From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurial-elRed Hat:enterprise_linux:7::server From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-hgkRed Hat:enterprise_linux:7::server From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurialRed Hat:enterprise_linux:7::workstation From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-debuginfoRed Hat:enterprise_linux:7::workstation From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurialRed Hat:enterprise_linux:7::workstation From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
emacs-mercurial-elRed Hat:enterprise_linux:7::workstation From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurial-hgkRed Hat:enterprise_linux:7::workstation From an advisory covering 3 CVEs |
before 0:2.6.2-10.el7 | 0:2.6.2-10.el7 |
mercurialSUSE:Linux Enterprise Software Development Kit 12 SP3 From an advisory covering 3 CVEs |
before 2.8.2-15.13.1 | 2.8.2-15.13.1 |
mercurialSUSE:Linux Enterprise Software Development Kit 11 SP4 From an advisory covering 3 CVEs |
before 2.3.2-0.18.9.1 | 2.3.2-0.18.9.1 |
mercurialSUSE:Linux Enterprise Module for Development Tools 15 From an advisory covering 3 CVEs |
before 4.5.2-3.3.1 | 4.5.2-3.3.1 |
mercurialUbuntu:14.04:LTS |
before 2.8.2-1ubuntu1.4, plus listed versions 2.6.3-12.7.2-12.8.1-22.8.2-1ubuntu12.8.2-1ubuntu1.3 |
2.8.2-1ubuntu1.4 |
mercurialUbuntu:16.04:LTS |
before 3.7.3-1ubuntu1.1, plus listed versions 3.4-1ubuntu23.6.2-1ubuntu23.7.3-1ubuntu1 |
3.7.3-1ubuntu1.1 |
mercurialUbuntu:18.04:LTS |
before 4.5.3-1ubuntu2.1, plus listed versions 4.3.1-24.5-1ubuntu14.5.2-0ubuntu24.5.3-1ubuntu2 |
4.5.3-1ubuntu2.1 |
mercurialopenSUSE:Tumbleweed From an advisory covering 9 CVEs |
before 5.9.1-2.1 | 5.9.1-2.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2018-13346 is a high vulnerability (CVSS 7.5) in Mercurial, published July 5, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.40%, the 84th percentile. Fixed in mercurial 4.6.1.
References
mercurial-scm.org/wiki/WhatsNew
mercurial-scm.org/repo/hg/rev/faa924469635
access.redhat.com/errata/RHSA-2019:2276
lists.debian.org/debian-lts-announce/2020/07/msg00032.html
nvd.nist.gov/vuln/detail/CVE-2018-13346
github.com/pypa/advisory-database/tree/main/vulns/mercurial/PYSEC-2018-88.yaml
Show 37 moreShow less
github.com/advisories/GHSA-9xv4-r2hf-26gh
security-tracker.debian.org/tracker/CVE-2018-13346
advisories.mageia.org/MGASA-2018-0355.html
bugs.mageia.org/show_bug.cgi?id=22895
lists.opensuse.org/opensuse-updates/2018-04/msg00021.html
lists.opensuse.org/opensuse-updates/2018-07/msg00057.html
access.redhat.com/security/updates/classification
access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.7_release_notes/index
bugzilla.redhat.com/show_bug.cgi?id=1553265
bugzilla.redhat.com/show_bug.cgi?id=1594087
bugzilla.redhat.com/show_bug.cgi?id=1594090
security.access.redhat.com/data/csaf/v2/advisories/2019/rhsa-2019_2276.json
access.redhat.com/security/cve/CVE-2018-13346
cve.org/CVERecord?id=CVE-2018-13346
access.redhat.com/security/cve/CVE-2018-13347
cve.org/CVERecord?id=CVE-2018-13347
nvd.nist.gov/vuln/detail/CVE-2018-13347
access.redhat.com/security/cve/CVE-2018-1000132
cve.org/CVERecord?id=CVE-2018-1000132
nvd.nist.gov/vuln/detail/CVE-2018-1000132
suse.com/support/update/announcement/2018/suse-su-20181990-1
bugzilla.suse.com/1100353
bugzilla.suse.com/1100354
bugzilla.suse.com/1100355
suse.com/security/cve/CVE-2018-13346
suse.com/security/cve/CVE-2018-13347
suse.com/security/cve/CVE-2018-13348
suse.com/support/update/announcement/2018/suse-su-20181996-1
suse.com/support/update/announcement/2018/suse-su-20181998-1
ubuntu.com/security/CVE-2018-13346
suse.com/security/cve/CVE-2008-2942
suse.com/security/cve/CVE-2017-1000115
suse.com/security/cve/CVE-2017-1000116
suse.com/security/cve/CVE-2017-17458
suse.com/security/cve/CVE-2018-1000132
suse.com/security/cve/CVE-2018-17983
suse.com/security/cve/CVE-2019-3902
Left out here: 97 versions. The JSON record has them.