summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-multimedia/webp/files/CVE-2023-1999.patch60
-rw-r--r--meta/recipes-multimedia/webp/libwebp_1.2.4.bb4
2 files changed, 63 insertions, 1 deletions
diff --git a/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch b/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch
new file mode 100644
index 0000000000..895d01ea7d
--- /dev/null
+++ b/meta/recipes-multimedia/webp/files/CVE-2023-1999.patch
@@ -0,0 +1,60 @@
1From a486d800b60d0af4cc0836bf7ed8f21e12974129 Mon Sep 17 00:00:00 2001
2From: James Zern <jzern@google.com>
3Date: Wed, 22 Feb 2023 22:15:47 -0800
4Subject: [PATCH] EncodeAlphaInternal: clear result->bw on error
5
6This avoids a double free should the function fail prior to
7VP8BitWriterInit() and a previous trial result's buffer carried over.
8Previously in ApplyFiltersAndEncode() trial.bw (with a previous
9iteration's buffer) would be freed, followed by best.bw pointing to the
10same buffer.
11
12Since:
13187d379d add a fallback to ALPHA_NO_COMPRESSION
14
15In addition, check the return value of VP8BitWriterInit() in this
16function.
17
18Bug: webp:603
19Change-Id: Ic258381ee26c8c16bc211d157c8153831c8c6910
20
21CVE: CVE-2023-1999
22
23Upstream-Status: Backport [https://github.com/webmproject/libwebp/commit/a486d800b60d0af4cc0836bf7ed8f21e12974129]
24
25Signed-off-by: Soumya <soumya.sambu@windriver.com>
26---
27 src/enc/alpha_enc.c | 4 +++-
28 1 file changed, 3 insertions(+), 1 deletion(-)
29
30diff --git a/src/enc/alpha_enc.c b/src/enc/alpha_enc.c
31index f7c0269..7d20558 100644
32--- a/src/enc/alpha_enc.c
33+++ b/src/enc/alpha_enc.c
34@@ -13,6 +13,7 @@
35
36 #include <assert.h>
37 #include <stdlib.h>
38+#include <string.h>
39
40 #include "src/enc/vp8i_enc.h"
41 #include "src/dsp/dsp.h"
42@@ -148,6 +149,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
43 }
44 } else {
45 VP8LBitWriterWipeOut(&tmp_bw);
46+ memset(&result->bw, 0, sizeof(result->bw));
47 return 0;
48 }
49 }
50@@ -162,7 +164,7 @@ static int EncodeAlphaInternal(const uint8_t* const data, int width, int height,
51 header = method | (filter << 2);
52 if (reduce_levels) header |= ALPHA_PREPROCESSED_LEVELS << 4;
53
54- VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size);
55+ if (!VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size)) ok = 0;
56 ok = ok && VP8BitWriterAppend(&result->bw, &header, ALPHA_HEADER_LEN);
57 ok = ok && VP8BitWriterAppend(&result->bw, output, output_size);
58
59--
602.40.0
diff --git a/meta/recipes-multimedia/webp/libwebp_1.2.4.bb b/meta/recipes-multimedia/webp/libwebp_1.2.4.bb
index 263589846a..5d868b3b96 100644
--- a/meta/recipes-multimedia/webp/libwebp_1.2.4.bb
+++ b/meta/recipes-multimedia/webp/libwebp_1.2.4.bb
@@ -13,7 +13,9 @@ LICENSE = "BSD-3-Clause"
13LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7" 14 file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
15 15
16SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz" 16SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz \
17 file://CVE-2023-1999.patch \
18 "
17SRC_URI[sha256sum] = "7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df" 19SRC_URI[sha256sum] = "7bf5a8a28cc69bcfa8cb214f2c3095703c6b73ac5fba4d5480c205331d9494df"
18 20
19UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html" 21UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"