Exiv2 0.27.2 allows attackers to trigger a crash in Exiv2::getULong in types.cpp when called from Exiv2::Internal::CiffDirectory::readDirectory in crwimage_int.cpp, because there is no validation of the relationship of the total size to the offset and size. Reference: http://github.com/Exiv2/exiv2/issues/1019
Created exiv2 tracking bugs for this issue: Affects: fedora-all [bug 1773684]
Upstream patch: http://github.com/Exiv2/exiv2/commit/88054239e3c914862d13f6ac89a19a104fa2c076 [master branch] http://github.com/Exiv2/exiv2/commit/50e9dd964a439da357798344ed1dd86edcadf0ec [0.27-maintanance branch] Opened upstream issue to discuss improving the fix: http://github.com/Exiv2/exiv2/issues/1026
No release yet includes the fix.
Function CiffDirectory::readDirectory(), called by CiffDirectory::doRead(), assumes that the buffer `pData` is at least `size` bytes large. This is not always true, as the `size` value is read from the image itself (in CiffComponent::doRead() function) and there are not enough checks to ensure this holds true.
This issue has been addressed in the following products: Red Hat Enterprise Linux 7 Via RHSA-2020:4030 http://access.redhat.com/errata/RHSA-2020:4030
This bug is now closed. Further updates for individual products will be reflected on the CVE page(s): http://access.redhat.com/security/cve/cve-2019-17402
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2021:1758 http://access.redhat.com/errata/RHSA-2021:1758