Where
-Infinity
0

Exiv2 version 0.28.9 is released today, with fixes for 1 moderate and 6 low severity vulnerabilities. We are also planning to include a security-related change in the upcoming 0.29.0 release: more details at the end.

https://github.com/Exiv2/exiv2/security/advisories/GHSA-3695-mjv8-3r52 (moderate severity, CVE-2026-68546) Out-of-bounds write in RemoteIo::Impl::populateBlocks(). The bug is in the RemoteIo class, which is only used when Exiv2 is run on a URL, rather than a local file. In other words, to trigger the bug, Exiv2 needs to be run like this:

bash exiv2 https://dodgywebsite.com/poc.jpg

https://github.com/Exiv2/exiv2/security/advisories/GHSA-jcgh-p9v3-pw6j (low severity, CVE-2026-68547) Out-of-bounds read in RemoteIo::Impl::populateBlocks(). The bug is in the RemoteIo class, which is only used when Exiv2 is run on a URL, rather than a local file. In other words, to trigger the bug, Exiv2 needs to be run like this:

bash exiv2 https://dodgywebsite.com/poc.jpg

https://github.com/Exiv2/exiv2/security/advisories/GHSA-hxph-pv7w-8649 (low severity, CVE-2026-49275) Out-of-bounds read in CrwMap::decodeBasic(). The bug is reproducible with our fuzz target, but we have not been able to reproduce it with the exiv2 command line application.

https://github.com/Exiv2/exiv2/security/advisories/GHSA-vg6c-9f6h-4x5q (low severity, CVE requested) Out-of-bounds write in RemoteIo::mmap(). The bug is in the RemoteIo class, which is only used when Exiv2 is run on a URL, rather than a local file. Furthermore, the bug is only triggered when using Exiv2 to list available image previews (the -pp command line option). In other words, to trigger the bug, Exiv2 needs to be run like this:

bash exiv2 -pp https://dodgywebsite.com/poc.jpg

https://github.com/Exiv2/exiv2/security/advisories/GHSA-9v3x-mhg4-wwv2 (low severity, CVE requested) Out-of-bounds write in Exiv2::http(). The bug can only be triggered by running Exiv2 on a URL, rather than a local file. The easiest way to reproduce the bug is by calling Exiv2 with an unrealistically long command line argument:

bash exiv2 -pa python -c "print('http://127.0.0.1:8769/' + 'A' 100000)"

The above reproduction steps are a self-pwn, which would make this a regular bug, not a vulnerability. However, we are treating it as a vulnerability because there is also a possibility that the bug could be triggered by a command like this:

bash exiv2 -Mset Exif.Image.Artist PwnMe https://dodgywebsite.com/poc.jpg

https://github.com/Exiv2/exiv2/security/advisories/GHSA-fgw8-p7pr-37cp (low severity, CVE requested) Denial of service in QuickTimeVideo::userDataDecoder(): an invalid input file can cause QuickTimeVideo::userDataDecoder() to get stuck in an infinite loop during parsing. The vulnerability can be triggered by running Exiv2 on a crafted file, like this:

bash exiv2 poc.mov

https://github.com/Exiv2/exiv2/security/advisories/GHSA-pwvq-9w4q-786w (low severity, CVE requested) Denial of service in PgfImage::readMetadata(). The vulnerability can be triggered by running Exiv2 on a crafted file, like this:

bash exiv2 poc.pgf

This causes Exiv2 to rapidly allocate a very large amount of memory, which can impact system performance.

Security related note on the upcoming 0.29.0 release We have been receiving a very large number of "denial of service" vulnerability reports, all of them variations on the theme: "deeply nested file causes stack exhaustion". Exiv2 uses recursion to parse image files, so it is relatively easy for a crafted file to cause Exiv2 to run out of stack. On Linux, there is a very simple solution to this issue, which is to increase your stack size with the ulimit command. But that solution doesn't work on macOS and Windows which have relatively low hard limits on the stack size. So we are planning to fix this issue by adding a recursion depth limit to all the parsers. Unfortunately, this will involve changing libexiv2's public API, so we cannot do it in the 0.28.x series. We are planning to include this change in the upcoming 0.29.0 release instead. For more details on this issue, see https://github.com/Exiv2/exiv2/issues/9414

Severity
5.3
EPSS
0.10%
Use After Free, Buffer Overflow
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Impact A heap buffer overflow was found in Exiv2 versions v0.28.0 to v0.28.4. Versions prior to v0.28.0, such as v0.27.7, are not affected. Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. The heap overflow is triggered when Exiv2 is used to write metadata into a crafted image file. An attacker could potentially exploit the vulnerability to gain code execution, if they can trick the victim into running Exiv2 on a crafted image file.

Note that this bug is only triggered when writing the metadata, which is a less frequently used Exiv2 operation than reading the metadata. For example, to trigger the bug in the Exiv2 command-line application, you need to add an extra command-line argument such as fixiso.

Patches The bug is fixed in version v0.28.5.

References Issue: https://github.com/Exiv2/exiv2/issues/3168 Fix: https://github.com/Exiv2/exiv2/pull/3174

For more information Please see our security policy for information about Exiv2 security.

1 / 2
Source: GitHub
First published (updated )
Severity
5.5
EPSS
0.04%
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Impact A denial-of-service was found in Exiv2 version v0.28.1: an unbounded recursion can cause Exiv2 to crash by exhausting the stack. The vulnerable function, QuickTimeVideo::multipleEntriesDecoder, was new in v0.28.0 (see https://github.com/Exiv2/exiv2/pull/2337), so Exiv2 versions before v0.28 are not affected. Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. The denial-of-service is triggered when Exiv2 is used to read the metadata of a crafted video file.

Patches The bug is fixed in version v0.28.2.

For more information Please see our security policy for information about Exiv2 security.

Credit This bug was found by OSS-Fuzz.

1 / 2
Source: GitHub
First published (updated )
Severity
5.5
EPSS
0.04%
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Impact An out-of-bounds read was found in Exiv2 version v0.28.1. The vulnerable function, QuickTimeVideo::NikonTagsDecoder, was new in v0.28.0 (see https://github.com/Exiv2/exiv2/pull/2337), so Exiv2 versions before v0.28 are not affected. Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. The out-of-bounds read is triggered when Exiv2 is used to read the metadata of a crafted video file.

Patches The bug is fixed in version v0.28.2.

For more information Please see our security policy for information about Exiv2 security.

Credit This bug was found by OSS-Fuzz.

1 / 2
Source: GitHub
First published (updated )
Severity
6.5
Buffer Overflow, Input Validation
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L

A flaw was found in Exiv2 in versions before and including 0.27.4-RC1. Improper input validation of the rawData.size property in Jp2Image::readMetadata() in jp2image.cpp can lead to a heap-based buffer overflow via a crafted JPG image containing malicious EXIF data.

1 / 2
First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An infinite loop was found in Exiv2 versions v0.27.4 and earlier. The infinite loop is triggered when Exiv2 is used to modify the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when deleting the IPTC data, which is a less frequently used Exiv2 operation that requires an extra command line option (-d I rm). The bug is fixed in version v0.27.5.

First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An infinite loop was found in Exiv2 versions v0.27.4 and earlier. The infinite loop is triggered when Exiv2 is used to modify the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when deleting the IPTC data, which is a less frequently used Exiv2 operation that requires an extra command line option (-d I rm). The bug is fixed in version v0.27.5.

First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An infinite loop was found in Exiv2 versions v0.27.4 and earlier. The infinite loop is triggered when Exiv2 is used to print the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when printing the image ICC profile, which is a less frequently used Exiv2 operation that requires an extra command line option (-p C). The bug is fixed in version v0.27.5.

First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An out-of-bounds read was found in Exiv2 versions v0.27.4 and earlier. The out-of-bounds read is triggered when Exiv2 is used to write metadata into a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service by crashing Exiv2, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when writing the metadata, which is a less frequently used Exiv2 operation than reading the metadata. For example, to trigger the bug in the Exiv2 command-line application, you need to add an extra command-line argument such as insert. The bug is fixed in version v0.27.5.

1 / 2
Source: MITRE
First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An out-of-bounds read was found in Exiv2 versions v0.27.4 and earlier. The out-of-bounds read is triggered when Exiv2 is used to print the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when printing the image ICC profile, which is a less frequently used Exiv2 operation that requires an extra command line option (-p C). The bug is fixed in version v0.27.5.

1 / 2
Source: MITRE
First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. An out-of-bounds read was found in Exiv2 versions v0.27.4 and earlier. The out-of-bounds read is triggered when Exiv2 is used to read the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. The bug is fixed in version v0.27.5.

First published (updated )
Severity
5.5
Null Pointer Dereference
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. A null pointer dereference was found in Exiv2 versions v0.27.4 and earlier. The null pointer dereference is triggered when Exiv2 is used to print the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when printing the interpreted (translated) data, which is a less frequently used Exiv2 operation that requires an extra command line option (-p t or -P t). The bug is fixed in version v0.27.5.

First published (updated )
Severity
5.5
Null Pointer Dereference
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Exiv2 is a command-line utility and C++ library for reading, writing, deleting, and modifying the metadata of image files. A null pointer dereference was found in Exiv2 versions v0.27.4 and earlier. The null pointer dereference is triggered when Exiv2 is used to print the metadata of a crafted image file. An attacker could potentially exploit the vulnerability to cause a denial of service, if they can trick the victim into running Exiv2 on a crafted image file. Note that this bug is only triggered when printing the interpreted (translated) data, which is a less frequently used Exiv2 operation that requires an extra command line option (-p t or -P t). The bug is fixed in version v0.27.5.

First published (updated )
Severity
8.1
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H

In Exiv2 0.26, an out-of-bounds read in IptcData::printStructure in iptc.c could result in a crash or information leak, related to the "== 0x1c" case.

1 / 2
Source: MITRE
First published (updated )
Severity
6.5
Divide by Zero
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

A flaw was found in Exiv2 0.26, a divide by zero in BigTiffImage::printIFD in bigtiffimage.cpp could result in denial of service.

References: https://github.com/Exiv2/exiv2/issues/262 https://github.com/xiaoqx/pocs/blob/master/exiv2/readme.md

1 / 2
Source: Red Hat
First published (updated )
Severity
6.5
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

A flaw was found in Exiv2 0.26, an assertion failure in BigTiffImage::readData in bigtiffimage.cpp results in an abort.

References: https://github.com/xiaoqx/pocs/blob/master/exiv2/readme.md

1 / 2
Source: Red Hat
First published (updated )
Severity
6.5
Input Validation
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

A flaw was found in Exiv2 0.26, there is a reachable assertion abort in the function Exiv2::DataBuf::DataBuf at include/exiv2/types.hpp.

References: https://bugzilla.novell.com/showbug.cgi?id=1087879

1 / 2
Source: Red Hat
First published (updated )
Severity
8.1
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H

In Exiv2 0.26, there is an out-of-bounds read in Exiv2::Internal::binaryToString in image.cpp. It could result in denial of service or information disclosure.

First published (updated )
Severity
6.5
Buffer Overflow
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

A flaw was found in Exiv2 0.26, the Exiv2::Internal::printCsLensFFFF function in canonmnint.cpp allows remote attackers to cause a denial of service (invalid memory access) via a crafted file.

References: https://github.com/Exiv2/exiv2/issues/247

1 / 2
Source: Red Hat
First published (updated )
Severity
6.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

A flaw was found in Exiv2 0.26, jpgimage.cpp allows remote attackers to cause a denial of service (image.cpp Exiv2::Internal::stringFormat out-of-bounds read) via a crafted file.

References: https://github.com/Exiv2/exiv2/issues/246

1 / 2
Source: Red Hat
First published (updated )
Severity
5.5
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

In Exiv2 0.26, there is a segmentation fault caused by uncontrolled recursion in the Exiv2::Image::printIFDStructure function in the image.cpp file. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted tif file.

First published (updated )
Severity
7.5
EPSS
0.04%
Integer Underflow
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Exiv2 is a C++ library and a command-line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata. Prior to version 0.28.8, an out-of-bounds read was found in Exiv2. The vulnerability is in the preview component, which is only triggered when running Exiv2 with an extra command line argument, like -pp. The out-of-bounds read is at a 4GB offset, which usually causes Exiv2 to crash. This issue has been patched in version 0.28.8.

First published (updated )
Severity
8.1
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Exiv2 is a C++ library and a command-line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata. Prior to version 0.28.8, an out-of-bounds read was found. The vulnerability is in the CRW image parser. This issue has been patched in version 0.28.8.

First published (updated )
Severity
5.3
EPSS
0.03%
Integer Overflow
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Exiv2 is a C++ library and a command-line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata. Prior to version 0.28.8, an uncaught exception was found in Exiv2. The vulnerability is in the preview component, which is only triggered when running Exiv2 with an extra command line argument, like -pp. Due to an integer overflow, the code attempts to create a huge std::vector, which causes Exiv2 to crash with an uncaught exception. This issue has been patched in version 0.28.8.

First published (updated )

Exiv2 version 0.28.8 was released yesterday (2026-03-01) with fixes for three CVEs:

CVE-2026-25884: Out-of-bounds read in CrwMap::decode0x0805 Impact: low severity, because we're only able to reproduce this with our fuzz target, not with the exiv2 command-line application. Credit: found by Google OSS-Fuzz

CVE-2026-27596: Integer overflow in LoaderNative::getData() causes out-of-bounds read Impact: low severity, because it is only triggered when running Exiv2 with an extra command line argument, like -pp. The out-of-bounds read is at a 4GB offset, which typically causes a crash. Credit: found by @zerojackyi

CVE-2026-27631: Uncaught exception: cannot create std::vector larger than maxsize() Impact: low severity, because it is only triggered when running Exiv2 with an extra command line argument, like -pp. This issue causes Exiv2 to crash with an uncaught exception. Credit: found by team Exiv2

The second issue (CVE-2026-27596) is perhaps the most interesting because it looks to me like it was found by AI. I think the report looks AI-generated, but it's also unusual for a poc to be written in Python, since most Exiv2 bugs are found by fuzzing. In the past, a poc like this would have indicated that it was hand-crafted by a human, but these days AI seems more likely. Although we've rated it low-severity, it was a useful report to receive because it uncovered a gap in our fuzzing coverage. We have now added a new fuzz-target to address that gap, which is how we found the third issue (CVE-2026-27631).

One more thing that I'd like to mention: we have stopped supporting older versions of Exiv2. If you haven't done so already, please consider upgrading to the 0.28 series.

Thanks,

Kev

Links: https://github.com/Exiv2/exiv2/releases/tag/v0.28.8 https://github.com/Exiv2/exiv2/security/advisories/GHSA-9mxq-4j5g-5wrp https://github.com/Exiv2/exiv2/security/advisories/GHSA-3wgv-fg4w-75x7 https://github.com/Exiv2/exiv2/security/advisories/GHSA-p2pw-7935-c73j

Severity
7.5
Buffer Overflow, Integer Overflow
AV:N/AC:L/Au:N/C:P/I:P/A:P

Integer overflow in exif.cpp in exiv2 library allows context-dependent attackers to execute arbitrary code via a crafted EXIF file that triggers a heap-based buffer overflow.

1 / 2
Source: MITRE
First published (updated )
Severity
7.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Last updated 25 August 2025

1 / 2
Source: Ubuntu
First published (updated )
Severity
6.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Last updated 25 August 2025

1 / 2
Source: Ubuntu
First published (updated )
Severity
5.5
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Last updated 25 August 2025

1 / 2
Source: Ubuntu
First published (updated )
Severity
5.5
Buffer Overflow
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

An Invalid memory address dereference was discovered in Exiv2::getULong in types.cpp in Exiv2 0.26. The vulnerability causes a segmentation fault and application crash, which leads to denial of service.

1 / 2
Source: Launchpad
First published (updated )

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203