Skip to content
Fencer Vulns
medium 5.1

CVE-2019-3902 json

Mercurial Path Traversal/Link Following vulnerability

published 2019-04-22 7 y ago modified 2026-06-17 4 mo ago also GHSA-mq66-vcfc-8246 , PYSEC-2019-188 , EUVD-2019-0085

cvss
5.1
version 3.0, CNA
cisa kev
Not listed
not in CISA's catalog
epss
1.4%
EPSS 1.4% chance of exploitation in 30 days, percentile 71%
public exploits
0
none known

Summary

A flaw was found in Mercurial before 4.9. It was possible to use symlinks and subrepositories to defeat Mercurial's path-checking logic and write files outside a repository.

Patch / fix

  • pypi mercurial 4.9
  • mercurial mercurial 4.9
  • mercurial Debian 14, Debian 13, Debian 12 4.9-1

debian advisories DEBIAN-CVE-2019-3902

  • mercurial Ubuntu 18.04 LTS 4.5.3-1ubuntu2.2
  • mercurial Ubuntu Pro 14.04 LTS 2.8.2-1ubuntu1.4+esm1
  • mercurial Ubuntu Pro 16.04 LTS 3.7.3-1ubuntu1.2+esm2

ubuntu advisories UBUNTU-CVE-2019-3902

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 12 SP5 2.8.2-15.18.4
  • mercurial SLE Module for Python 2 15 SP2, SLE Module for Python 2 15 SP1 4.5.2-3.9.44

suse advisories SUSE-SU-2020:3003-1SUSE-SU-2020:1709-2SUSE-SU-2020:1709-1

  • mercurial openSUSE Tumbleweed 5.9.1-2.1
  • mercurial openSUSE Leap 15.2 4.5.2-lp152.7.3.1
  • mercurial openSUSE Leap 15.1 4.5.2-lp151.6.3.1

opensuse advisories openSUSE-SU-2024:10586-1openSUSE-SU-2020:0880-1openSUSE-SU-2020:0869-1

  • mercurial Alpine 3.24, Alpine 3.23, Alpine 3.22 +13 more 4.9-r0
  • mercurial Alpine 3.7 4.5.2-r1
  • mercurial Alpine 3.8 4.6.1-r1

alpine advisories ALPINE-CVE-2019-3902

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

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-2019-3902 updated cvss 5.1

mercurial: Path-checking logic bypass via symlinks and subrepositories

  • Red Hat Enterprise Linux 7 mercurial, mercurial-hgk, emacs-mercurial, emacs-mercurial-el Red Hat Enterprise Linux 8 mercurial, mercurial-chg, mercurial-hgk
    affected: no fix planned “Will not fix”
  • Red Hat Ansible Tower 3 mercurial Red Hat Enterprise Linux 6 mercurial, mercurial-hgk, emacs-mercurial, emacs-mercurial-el
    not 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

1.36% chance of exploitation in the next 30 days, higher than 71% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.0 5.1 CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
NVD 3.0 5.9 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
NVD 2.0 5.8 AV:N/AC:M/Au:N/C:N/I:P/A:P
GitHub 3.0 5.9 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N

Affected packages

ecosystem package affected fixed in
pypi mercurial
<4.9
4.9

Affected products

  • The Mercurial Project mercurial

Classification

Weakness
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory
  • CWE-59 Improper Link Resolution Before File Access

References

Sources

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.