Every CVE Search/ Get API key

CVE-2019-20021

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted...

5.5 MediumFix available

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

1.09%Down 0.2 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
CVSS 2.0
4.3 MediumAV:N/AC:M/Au:N/C:N/I:N/A:P
Weakness
CWE-125
Updated
2026-11-02
CVE List No score

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
CVE-2019-20021
Updated
2026-11-02
EUVDEUVD-2019-10577 No score

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
EUVD-2019-10577
Updated
2026-11-03
GitHub AdvisoriesGHSA-97cx-745f-9p9g 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted...

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
GHSA-97cx-745f-9p9g
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Weakness
CWE-125
Updated
2026-11-02
OSVALPINE-CVE-2019-20021 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
ALPINE-CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-03
OSVBELL-CVE-2019-20021 5.5

CVE-2019-20021 does not affect BellSoft software

Record
BELL-CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 7 moreShow less
OSV 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2019-20021 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
DEBIAN-CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2019-20021 5.5

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file.

Record
UBUNTU-CVE-2019-20021
CVSS 3.1
5.5 MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVMGASA-2020-0096 No score

Updated upx packages fix security vulnerabilities

The updated packages fix security vulnerabilities:

PackLinuxElf64::unpack in p_lx_elf.cpp in UPX 3.95 allows remote attackers to cause a denial of service (double free), limit the ability of a malware scanner to operate on the entire original data, or possibly have unspecified other impact via a crafted file. (CVE-2018-11243)

A heap-based buffer over-read was discovered in canUnpack in p_mach.cpp in UPX 3.95 via a crafted Mach-O file. (CVE-2019-20021)

A floating-point exception was discovered in PackLinuxElf::elf_hash in p_lx_elf.cpp in UPX 3.95. The vulnerability causes an application crash, which leads to denial of service. (CVE-2019-20051)

An invalid memory address dereference was discovered in the canUnpack function in p_mach.cpp in UPX 3.95 via a crafted Mach-O file. (CVE-2019-20053)

A denial of service in PackLinuxElf32::PackLinuxElf32help1(). (CVE-2019-1010048)

Record
MGASA-2020-0096
Updated
2026-11-02
OSVopenSUSE-SU-2020:0163-1 No score

Security update for upx

This update for upx to version 3.96 fixes the following issues:

  • CVE-2019-1010048: Fixed a denial of service in PackLinuxElf32::PackLinuxElf32help1() (boo#1141777).

  • CVE-2019-14296: Fixed a denial of service in canUnpack() (boo#1143839).

  • CVE-2019-20021: Fixed a heap-based buffer over-read in canUnpack() (boo#1159833).

  • CVE-2019-20053: Fixed a denial of service in canUnpack() (boo#1159920).

  • CVE-2018-11243: Fixed a denial of service in PackLinuxElf64::unpack() (boo#1094138).

  • Update to version 3.96

    • Bug fixes: [CVE-2019-1010048, boo#1141777] [CVE-2019-14296, boo#1143839] [CVE-2019-20021, boo#1159833] [CVE-2019-20053, boo#1159920] [CVE-2018-11243 partially - ticket 206 ONLY, boo#1094138]
  • Update to version 3.95

    • Flag --force-pie when ET_DYN main program is not marked as DF_1_PIE
    • Better compatibility with varying layout of address space on Linux
    • Support for 4 PT_LOAD layout in ELF generated by binutils-2.31
    • bug fixes, particularly better diagnosis of malformed input
    • bug fixes - see https://github.com/upx/upx/milestone/4
Record
openSUSE-SU-2020:0163-1
Updated
2026-11-02
OSVopenSUSE-SU-2020:0180-1 No score

Security update for upx

This update for upx to version 3.96 fixes the following issues:

  • CVE-2019-1010048: Fixed a denial of service in PackLinuxElf32::PackLinuxElf32help1() (boo#1141777).

  • CVE-2019-14296: Fixed a denial of service in canUnpack() (boo#1143839).

  • CVE-2019-20021: Fixed a heap-based buffer over-read in canUnpack() (boo#1159833).

  • CVE-2019-20053: Fixed a denial of service in canUnpack() (boo#1159920).

  • CVE-2018-11243: Fixed a denial of service in PackLinuxElf64::unpack() (boo#1094138).

  • Update to version 3.96

    • Bug fixes: [CVE-2019-1010048, boo#1141777] [CVE-2019-14296, boo#1143839] [CVE-2019-20021, boo#1159833] [CVE-2019-20053, boo#1159920] [CVE-2018-11243 partially - ticket 206 ONLY, boo#1094138]
  • Update to version 3.95

    • Flag --force-pie when ET_DYN main program is not marked as DF_1_PIE
    • Better compatibility with varying layout of address space on Linux
    • Support for 4 PT_LOAD layout in ELF generated by binutils-2.31
    • bug fixes, particularly better diagnosis of malformed input
    • bug fixes - see https://github.com/upx/upx/milestone/4

This update was imported from the openSUSE:Leap:15.1:Update update project.

Record
openSUSE-SU-2020:0180-1
Updated
2026-11-02
OSVopenSUSE-SU-2024:11486-1 No score

upx-3.96-3.2 on GA media

These are all security issues fixed in the upx-3.96-3.2 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:11486-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
upx
Alpine:v3.12
before 3.96-r0
3.96-r0
upx
Alpine:v3.13
before 3.96-r0
3.96-r0
upx
Alpine:v3.14
before 3.96-r0
3.96-r0
upx
Alpine:v3.15
before 3.96-r0
3.96-r0
upx
Alpine:v3.16
before 3.96-r0
3.96-r0
upx
Alpine:v3.17
before 3.96-r0
3.96-r0
upx
Alpine:v3.18
before 3.96-r0
3.96-r0
upx
Alpine:v3.19
before 3.96-r0
3.96-r0
upx
Alpine:v3.20
before 3.96-r0
3.96-r0
upx
Alpine:v3.21
before 3.96-r0
3.96-r0
Show 13 moreShow less
Affected packages
PackageAffectedFixed
upx
Alpine:v3.22
before 3.96-r0
3.96-r0
upx
Alpine:v3.23
before 3.96-r0
3.96-r0
upx
Alpine:v3.24
before 3.96-r0
3.96-r0
upx-ucl
Debian:13
before 3.96-1
3.96-1
upx-ucl
Debian:14
before 3.96-1
3.96-1
upx
Mageia:7
From an advisory covering 5 CVEs
before 3.96-1.mga7
3.96-1.mga7
ucl
Mageia:7
From an advisory covering 5 CVEs
before 1.03-16.1.mga7
1.03-16.1.mga7
upx-ucl
Ubuntu:16.04:LTS
All versions, plus listed versions
3.91-1
None known
upx-ucl
Ubuntu:18.04:LTS
All versions, plus listed versions
3.94-23.94-33.94-4
None known
upx-ucl
Ubuntu:20.04:LTS
All versions, plus listed versions
3.95-23.95-2build1
None known
upx
openSUSE:Leap 15.1
From an advisory covering 5 CVEs
before 3.96-lp151.3.3.1
3.96-lp151.3.3.1
upx
SUSE:Package Hub 15 SP1
From an advisory covering 5 CVEs
before 3.96-bp151.4.3.1
3.96-bp151.4.3.1
upx
openSUSE:Tumbleweed
From an advisory covering 7 CVEs
before 3.96-3.2
3.96-3.2

History

History
RecordedChangedSources
affected, facts
affected, aliases, referencesOSV
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2019-20021 is a medium vulnerability (CVSS 5.5) in Upx, published December 27, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.09%, the 65th percentile. Fixed in upx 3.96-r0.

References

Show 28 moreShow less
MoveEnter Open