summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/exiv2
diff options
context:
space:
mode:
authorwangmy <wangmy@fujitsu.com>2021-05-18 16:03:29 +0800
committerKhem Raj <raj.khem@gmail.com>2021-05-19 09:17:49 -0700
commitf0d83c14d9064ce1ee19b92d95c8daf790fe7488 (patch)
tree392ef3626e9e7a6f21ef5c17273ea5dd2625dffe /meta-oe/recipes-support/exiv2
parent5be72693096cef671bf54bf1dd6ee8125614d064 (diff)
downloadmeta-openembedded-f0d83c14d9064ce1ee19b92d95c8daf790fe7488.tar.gz
exiv2: Fix CVE-2021-29458
References https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-29458 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. Upstream-Status: Accepted [https://github.com/Exiv2/exiv2/pull/1536/commits/06d2db6e5fd2fcca9c060e95fc97f8a5b5d4c22d] CVE: CVE-2021-29458 Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-support/exiv2')
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch37
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb3
2 files changed, 39 insertions, 1 deletions
diff --git a/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch
new file mode 100644
index 000000000..285f6fe4c
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2/CVE-2021-29458.patch
@@ -0,0 +1,37 @@
1From 9b7a19f957af53304655ed1efe32253a1b11a8d0 Mon Sep 17 00:00:00 2001
2From: Kevin Backhouse <kevinbackhouse@github.com>
3Date: Fri, 9 Apr 2021 13:37:48 +0100
4Subject: [PATCH] Fix integer overflow.
5---
6 src/crwimage_int.cpp | 8 ++++++--
7 1 file changed, 6 insertions(+), 2 deletions(-)
8
9diff --git a/src/crwimage_int.cpp b/src/crwimage_int.cpp
10index aefaf22..2e3e507 100644
11--- a/src/crwimage_int.cpp
12+++ b/src/crwimage_int.cpp
13@@ -559,7 +559,7 @@ namespace Exiv2 {
14 void CiffComponent::setValue(DataBuf buf)
15 {
16 if (isAllocated_) {
17- delete pData_;
18+ delete[] pData_;
19 pData_ = 0;
20 size_ = 0;
21 }
22@@ -1167,7 +1167,11 @@ namespace Exiv2 {
23 pCrwMapping->crwDir_);
24 if (edX != edEnd || edY != edEnd || edO != edEnd) {
25 uint32_t size = 28;
26- if (cc && cc->size() > size) size = cc->size();
27+ if (cc) {
28+ if (cc->size() < size)
29+ throw Error(kerCorruptedMetadata);
30+ size = cc->size();
31+ }
32 DataBuf buf(size);
33 std::memset(buf.pData_, 0x0, buf.size_);
34 if (cc) std::memcpy(buf.pData_ + 8, cc->pData() + 8, cc->size() - 8);
35--
362.25.1
37
diff --git a/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb b/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb
index a13db42ed..1dc909eeb 100644
--- a/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb
+++ b/meta-oe/recipes-support/exiv2/exiv2_0.27.3.bb
@@ -10,7 +10,8 @@ SRC_URI[sha256sum] = "a79f5613812aa21755d578a297874fb59a85101e793edc64ec2c6bd994
10# Once patch is obsolete (project should be aware due to PRs), dos2unix can be removed either 10# Once patch is obsolete (project should be aware due to PRs), dos2unix can be removed either
11inherit dos2unix 11inherit dos2unix
12SRC_URI += "file://0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch \ 12SRC_URI += "file://0001-Use-compiler-fcf-protection-only-if-compiler-arch-su.patch \
13 file://CVE-2021-29457.patch" 13 file://CVE-2021-29457.patch \
14 file://CVE-2021-29458.patch"
14 15
15S = "${WORKDIR}/${BPN}-${PV}-Source" 16S = "${WORKDIR}/${BPN}-${PV}-Source"
16 17