CVE-2019-9686
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified...
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
8.8
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
- Record
CVE-2019-9686- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 9.3 High
AV:N/AC:M/Au:N/C:C/I:C/A:C - Weakness
- CWE-22
- Updated
- 2026-11-02
CVE List No score
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
- Record
CVE-2019-9686- Updated
- 2026-11-02
EUVDEUVD-2019-19052 No score
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
- Record
EUVD-2019-19052- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-2fr8-9j8m-w8vx
8.8
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified...
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
- Record
GHSA-2fr8-9j8m-w8vx- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVALPINE-CVE-2019-9686
8.8
pacman before 5.1.3 allows directory traversal when installing a remote package via a specified URL "pacman -U <url>" due to an unsanitized file name received from a Content-Disposition header. pacman renames the downloaded package file to match the name given in this header. However, pacman did not sanitize this name, which may contain slashes, before calling rename(). A malicious server (or a network MitM if downloading over HTTP) can send a Content-Disposition header to make pacman place the file anywhere in the filesystem, potentially leading to arbitrary root code execution. Notably, this bypasses pacman's package signature checking. This occurs in curl_download_internal in lib/libalpm/dload.c.
- Record
ALPINE-CVE-2019-9686- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
pacmanAlpine:v3.11 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.12 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.13 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.14 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.15 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.16 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.17 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.18 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.19 |
before 5.1.3-r0 | 5.1.3-r0 |
pacmanAlpine:v3.20 |
before 5.1.3-r0 | 5.1.3-r0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, facts, references | OSV | |
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2019-9686 is a high vulnerability (CVSS 8.8) in Pacman Project Pacman, published March 11, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 3.38%, the 88th percentile. Fixed in pacman 5.1.3-r0.
References
git.archlinux.org/pacman.git/commit?id=d197d8ab82cf10650487518fb968067897a12775
git.archlinux.org/pacman.git/commit?h=release/5.1.x&id=1bf767234363f7ad5933af3f7ce267c123017bde
git.archlinux.org/pacman.git/commit?id=9702703633bec2c007730006de2aeec8587dfc84
nvd.nist.gov/vuln/detail/CVE-2019-9686
github.com/advisories/GHSA-2fr8-9j8m-w8vx
security.alpinelinux.org/vuln/CVE-2019-9686