Every CVE Search/ Get API key

CVE-2019-20421

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an...

7.5 HighFix available

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

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
None
Availability
High

Exploit likelihood

4.30%Up 3.0 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
CVE-2019-20421
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS 2.0
7.8 HighAV:N/AC:L/Au:N/C:N/I:N/A:C
Weakness
CWE-835
Updated
2026-11-02
CVE List No score

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
CVE-2019-20421
Updated
2026-11-02
EUVDEUVD-2020-0077 No score

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
EUVD-2020-0077
Updated
2026-11-03
GitHub AdvisoriesGHSA-p4gw-2vrq-j64q No score

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an...

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
GHSA-p4gw-2vrq-j64q
Weakness
CWE-835
Updated
2026-11-02
OSVALPINE-CVE-2019-20421 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
ALPINE-CVE-2019-20421
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-03
OSVAZL-7205 7.5

CVE-2019-20421 affecting package exiv2 for versions less than 0.27.5-1

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
AZL-7205
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
Show 10 moreShow less
OSV 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
CVE-2019-20421
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2019-20421 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
DEBIAN-CVE-2019-20421
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVPYSEC-2020-344 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
PYSEC-2020-344
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2020:1577 7.5

Red Hat Security Advisory: exiv2 security, bug fix, and enhancement update

Record
RHSA-2020:1577
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRLSA-2020:1577 7.5

Moderate: exiv2 security, bug fix, and enhancement update

The exiv2 packages provide a command line utility which can display and manipulate image metadata such as EXIF, LPTC, and JPEG comments.

The following packages have been upgraded to a later upstream version: exiv2 (0.27.2). (BZ#1651917)

Security Fix(es):

  • exiv2: infinite loop and hang in Jp2Image::readMetadata() in jp2image.cpp could lead to DoS (CVE-2019-20421)

  • exiv2: null pointer dereference in the Exiv2::DataValue::toLong function in value.cpp (CVE-2017-18005)

  • exiv2: Excessive memory allocation in Exiv2::Jp2Image::readMetadata function in jp2image.cpp (CVE-2018-4868)

  • exiv2: assertion failure in BigTiffImage::readData in bigtiffimage.cpp (CVE-2018-9303)

  • exiv2: divide by zero in BigTiffImage::printIFD in bigtiffimage.cpp (CVE-2018-9304)

  • exiv2: out of bounds read in IptcData::printStructure in iptc.c (CVE-2018-9305)

  • exiv2: OOB read in pngimage.cpp:tEXtToDataBuf() allows for crash via crafted file (CVE-2018-10772)

  • exiv2: information leak via a crafted file (CVE-2018-11037)

  • exiv2: buffer overflow in samples/geotag.cpp (CVE-2018-14338)

  • exiv2: heap-based buffer overflow in Exiv2::d2Data in types.cpp (CVE-2018-17229)

  • exiv2: heap-based buffer overflow in Exiv2::ul2Data in types.cpp (CVE-2018-17230)

  • exiv2: NULL pointer dereference in Exiv2::DataValue::copy in value.cpp leading to application crash (CVE-2018-17282)

  • exiv2: Stack overflow in CiffDirectory::readDirectory() at crwimage_int.cpp leading to denial of service (CVE-2018-17581)

  • exiv2: infinite loop in Exiv2::Image::printIFDStructure function in image.cpp (CVE-2018-18915)

  • exiv2: heap-based buffer over-read in Exiv2::IptcParser::decode in iptc.cpp (CVE-2018-19107)

  • exiv2: infinite loop in Exiv2::PsdImage::readMetadata in psdimage.cpp (CVE-2018-19108)

  • exiv2: heap-based buffer over-read in PngChunk::readRawProfile in pngchunk_int.cpp (CVE-2018-19535)

  • exiv2: NULL pointer dereference in Exiv2::isoSpeed in easyaccess.cpp (CVE-2018-19607)

  • exiv2: Heap-based buffer over-read in Exiv2::tEXtToDataBuf function resulting in a denial of service (CVE-2018-20096)

  • exiv2: Segmentation fault in Exiv2::Internal::TiffParserWorker::findPrimaryGroups function (CVE-2018-20097)

  • exiv2: Heap-based buffer over-read in Exiv2::Jp2Image::encodeJp2Header resulting in a denial of service (CVE-2018-20098)

  • exiv2: Infinite loop in Exiv2::Jp2Image::encodeJp2Header resulting in a denial of service (CVE-2018-20099)

  • exiv2: infinite recursion in Exiv2::Image::printTiffStructure in file image.cpp resulting in denial of service (CVE-2019-9143)

  • exiv2: denial of service in PngImage::readMetadata (CVE-2019-13109)

  • exiv2: integer overflow in WebPImage::decodeChunks leads to denial of service (CVE-2019-13111)

  • exiv2: uncontrolled memory allocation in PngChunk::parseChunkContent causing denial of service (CVE-2019-13112)

  • exiv2: invalid data location in CRW image file causing denial of service (CVE-2019-13113)

  • exiv2: null-pointer dereference in http.c causing denial of service (CVE-2019-13114)

  • exiv2: out of bounds read in IptcData::printStructure in iptc.c (CVE-2018-9306)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the Rocky Linux 8.2 Release Notes linked from the References section.

Record
RLSA-2020:1577
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2019-20421 7.5

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file.

Record
UBUNTU-CVE-2019-20421
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVALSA-2020:1577 No score

Moderate: exiv2 security, bug fix, and enhancement update

The exiv2 packages provide a command line utility which can display and manipulate image metadata such as EXIF, LPTC, and JPEG comments.

The following packages have been upgraded to a later upstream version: exiv2 (0.27.2). (BZ#1651917)

Security Fix(es):

  • exiv2: infinite loop and hang in Jp2Image::readMetadata() in jp2image.cpp could lead to DoS (CVE-2019-20421)

  • exiv2: null pointer dereference in the Exiv2::DataValue::toLong function in value.cpp (CVE-2017-18005)

  • exiv2: Excessive memory allocation in Exiv2::Jp2Image::readMetadata function in jp2image.cpp (CVE-2018-4868)

  • exiv2: assertion failure in BigTiffImage::readData in bigtiffimage.cpp (CVE-2018-9303)

  • exiv2: divide by zero in BigTiffImage::printIFD in bigtiffimage.cpp (CVE-2018-9304)

  • exiv2: out of bounds read in IptcData::printStructure in iptc.c (CVE-2018-9305)

  • exiv2: OOB read in pngimage.cpp:tEXtToDataBuf() allows for crash via crafted file (CVE-2018-10772)

  • exiv2: information leak via a crafted file (CVE-2018-11037)

  • exiv2: buffer overflow in samples/geotag.cpp (CVE-2018-14338)

  • exiv2: heap-based buffer overflow in Exiv2::d2Data in types.cpp (CVE-2018-17229)

  • exiv2: heap-based buffer overflow in Exiv2::ul2Data in types.cpp (CVE-2018-17230)

  • exiv2: NULL pointer dereference in Exiv2::DataValue::copy in value.cpp leading to application crash (CVE-2018-17282)

  • exiv2: Stack overflow in CiffDirectory::readDirectory() at crwimage_int.cpp leading to denial of service (CVE-2018-17581)

  • exiv2: infinite loop in Exiv2::Image::printIFDStructure function in image.cpp (CVE-2018-18915)

  • exiv2: heap-based buffer over-read in Exiv2::IptcParser::decode in iptc.cpp (CVE-2018-19107)

  • exiv2: infinite loop in Exiv2::PsdImage::readMetadata in psdimage.cpp (CVE-2018-19108)

  • exiv2: heap-based buffer over-read in PngChunk::readRawProfile in pngchunk_int.cpp (CVE-2018-19535)

  • exiv2: NULL pointer dereference in Exiv2::isoSpeed in easyaccess.cpp (CVE-2018-19607)

  • exiv2: Heap-based buffer over-read in Exiv2::tEXtToDataBuf function resulting in a denial of service (CVE-2018-20096)

  • exiv2: Segmentation fault in Exiv2::Internal::TiffParserWorker::findPrimaryGroups function (CVE-2018-20097)

  • exiv2: Heap-based buffer over-read in Exiv2::Jp2Image::encodeJp2Header resulting in a denial of service (CVE-2018-20098)

  • exiv2: Infinite loop in Exiv2::Jp2Image::encodeJp2Header resulting in a denial of service (CVE-2018-20099)

  • exiv2: infinite recursion in Exiv2::Image::printTiffStructure in file image.cpp resulting in denial of service (CVE-2019-9143)

  • exiv2: denial of service in PngImage::readMetadata (CVE-2019-13109)

  • exiv2: integer overflow in WebPImage::decodeChunks leads to denial of service (CVE-2019-13111)

  • exiv2: uncontrolled memory allocation in PngChunk::parseChunkContent causing denial of service (CVE-2019-13112)

  • exiv2: invalid data location in CRW image file causing denial of service (CVE-2019-13113)

  • exiv2: null-pointer dereference in http.c causing denial of service (CVE-2019-13114)

  • exiv2: out of bounds read in IptcData::printStructure in iptc.c (CVE-2018-9306)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the AlmaLinux Release Notes linked from the References section.

Record
ALSA-2020:1577
Updated
2026-11-02
OSVMGASA-2020-0084 No score

Updated exiv2 packages fix security vulnerability

The updated packages fix a security vulnerability:

In Jp2Image::readMetadata() in jp2image.cpp in Exiv2 0.27.2, an input file can result in an infinite loop and hang, with high CPU consumption. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted file. (CVE-2019-20421)

Record
MGASA-2020-0084
Updated
2026-11-02
OSVSUSE-SU-2020:0860-1 No score

Security update for exiv2

This update for exiv2 fixes the following issues:

  • CVE-2018-17581: Fixed an excessive stack consumption in CiffDirectory:readDirectory() which might have led to denial of service (bsc#1110282).
  • CVE-2019-13110: Fixed an integer overflow and an out of bounds read in CiffDirectory:readDirectory which might have led to denial of service (bsc#1142678).
  • CVE-2019-13113: Fixed a potential denial of service via an invalid data location in a CRW image (bsc#1142683).
  • CVE-2019-17402: Fixed an improper validation of the relationship of the total size to the offset and size in Exiv2::getULong (bsc#1153577).
  • CVE-2019-20421: Fixed an infinite loop triggered via an input file (bsc#1161901).
  • CVE-2017-9239: Fixed a segmentation fault in TiffImageEntry::doWriteImage function (bsc#1040973).
Record
SUSE-SU-2020:0860-1
Updated
2026-11-02
OSVUSN-4270-1 No score

exiv2 vulnerability

It was discovered that Exiv2 incorrectly handled certain images. An attacker could possibly use this issue to cause a denial of service.

Record
USN-4270-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
exiv2
Alpine:v3.11
before 0.27.2-r3
0.27.2-r3
exiv2
Alpine:v3.12
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.13
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.14
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.15
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.16
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.17
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.18
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.19
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.20
before 0.27.2-r6
0.27.2-r6
Show 54 moreShow less
Affected packages
PackageAffectedFixed
exiv2
Alpine:v3.21
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.22
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.23
before 0.27.2-r6
0.27.2-r6
exiv2
Alpine:v3.24
before 0.27.2-r6
0.27.2-r6
exiv2-devel
AlmaLinux:8
before 0.27.2-5.el8
0.27.2-5.el8
exiv2-doc
AlmaLinux:8
before 0.27.2-5.el8
0.27.2-5.el8
gegl
AlmaLinux:8
before 0.2.0-39.el8
0.2.0-39.el8
gnome-color-manager
AlmaLinux:8
before 3.28.0-3.el8
3.28.0-3.el8
libgexiv2
AlmaLinux:8
before 0.10.8-4.el8
0.10.8-4.el8
libgexiv2-devel
AlmaLinux:8
before 0.10.8-4.el8
0.10.8-4.el8
exiv2
Azure Linux:2
before 0.27.5-1
0.27.5-1
exiv2
Debian:12
before 0.27.2-8
0.27.2-8
exiv2
Debian:13
before 0.27.2-8
0.27.2-8
exiv2
Debian:14
before 0.27.2-8
0.27.2-8
exiv2
Debian:9
before 0.25-3.1+deb9u3, plus listed versions
0.25-3.10.25-3.1+0.riscv64.10.25-3.1+deb9u10.25-3.1+deb9u2
0.25-3.1+deb9u3
exiv2
Debian:10
before 0.25-4+deb10u2, plus listed versions
0.25-40.25-4+deb10u1
0.25-4+deb10u2
exiv2
Mageia:7
before 0.27.1-3.3.mga7
0.27.1-3.3.mga7
exiv2
Red Hat:enterprise_linux:8::appstream
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-debugsource
Red Hat:enterprise_linux:8::appstream
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-libs
Red Hat:enterprise_linux:8::appstream
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-libs-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:0.27.2-5.el8
0:0.27.2-5.el8
gegl
Red Hat:enterprise_linux:8::appstream
before 0:0.2.0-39.el8
0:0.2.0-39.el8
gegl-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:0.2.0-39.el8
0:0.2.0-39.el8
gegl-debugsource
Red Hat:enterprise_linux:8::appstream
before 0:0.2.0-39.el8
0:0.2.0-39.el8
gnome-color-manager
Red Hat:enterprise_linux:8::appstream
before 0:3.28.0-3.el8
0:3.28.0-3.el8
gnome-color-manager-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:3.28.0-3.el8
0:3.28.0-3.el8
gnome-color-manager-debugsource
Red Hat:enterprise_linux:8::appstream
before 0:3.28.0-3.el8
0:3.28.0-3.el8
libgexiv2
Red Hat:enterprise_linux:8::appstream
before 0:0.10.8-4.el8
0:0.10.8-4.el8
libgexiv2-debuginfo
Red Hat:enterprise_linux:8::appstream
before 0:0.10.8-4.el8
0:0.10.8-4.el8
libgexiv2-debugsource
Red Hat:enterprise_linux:8::appstream
before 0:0.10.8-4.el8
0:0.10.8-4.el8
exiv2
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-debuginfo
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-debugsource
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-devel
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-doc
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-libs
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
exiv2-libs-debuginfo
Red Hat:enterprise_linux:8::crb
before 0:0.27.2-5.el8
0:0.27.2-5.el8
libgexiv2
Red Hat:enterprise_linux:8::crb
before 0:0.10.8-4.el8
0:0.10.8-4.el8
libgexiv2-debuginfo
Red Hat:enterprise_linux:8::crb
before 0:0.10.8-4.el8
0:0.10.8-4.el8
libgexiv2-debugsource
Red Hat:enterprise_linux:8::crb
before 0:0.10.8-4.el8
0:0.10.8-4.el8
libgexiv2-devel
Red Hat:enterprise_linux:8::crb
before 0:0.10.8-4.el8
0:0.10.8-4.el8
exiv2
Rocky Linux:8
before 0:0.27.2-5.el8
0:0.27.2-5.el8
gegl
Rocky Linux:8
before 0:0.2.0-39.el8
0:0.2.0-39.el8
gnome-color-manager
Rocky Linux:8
before 0:3.28.0-3.el8
0:3.28.0-3.el8
libgexiv2
Rocky Linux:8
before 0:0.10.8-4.el8
0:0.10.8-4.el8
exiv2
SUSE:Linux Enterprise Software Development Kit 12 SP4
before 0.23-12.8.1
0.23-12.8.1
exiv2
SUSE:Linux Enterprise Software Development Kit 12 SP5
before 0.23-12.8.1
0.23-12.8.1
exiv2
SUSE:Linux Enterprise Server 12 SP4
before 0.23-12.8.1
0.23-12.8.1
exiv2
SUSE:Linux Enterprise Server for SAP Applications 12 SP4
before 0.23-12.8.1
0.23-12.8.1
exiv2
SUSE:Linux Enterprise Server 12 SP5
before 0.23-12.8.1
0.23-12.8.1
exiv2
SUSE:Linux Enterprise Server for SAP Applications 12 SP5
before 0.23-12.8.1
0.23-12.8.1
exiv2
Ubuntu:16.04:LTS
before 0.25-2.1ubuntu16.04.6, plus listed versions
0.25-1ubuntu10.25-2.10.25-2.1ubuntu16.04.10.25-2.1ubuntu16.04.20.25-2.1ubuntu16.04.30.25-2.1ubuntu16.04.40.25-2.1ubuntu16.04.5
0.25-2.1ubuntu16.04.6
exiv2
Ubuntu:18.04:LTS
before 0.25-3.1ubuntu0.18.04.5, plus listed versions
0.25-3.10.25-3.1ubuntu0.18.04.10.25-3.1ubuntu0.18.04.20.25-3.1ubuntu0.18.04.30.25-3.1ubuntu0.18.04.4
0.25-3.1ubuntu0.18.04.5

History

History
RecordedChangedSources
affectedOSV
affected
affected, aliases, referencesEUVD
first indexedOSV
first indexedCVE List, GitHub Advisories, NVD, OSV

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

In short

CVE-2019-20421 is a high vulnerability (CVSS 7.5) in Exiv2, published January 27, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.30%, the 91st percentile. Fixed in exiv2 0.27.2-r3.

References

Show 174 moreShow less
MoveEnter Open