Re: [OE-core] [PATCH] ffmpeg: CVE-2020-35965 Security Advisory

2021-01-18 Thread Anuj Mittal
On Tue, 2021-01-19 at 13:45 +0800, Wang Mingyu wrote:
> -From 3e5959b3457f7f1856d997261e6ac672bba49e8b Mon Sep 17 00:00:00
> 2001
> -From: Michael Niedermayer 
> -Date: Sat, 24 Oct 2020 22:21:48 +0200
> -Subject: [PATCH] avcodec/exr: Check ymin vs. h
> +Subject: [PATCH] CVE-2020-35965
> +
> +commit id:3e5959b3457f7f1856d997261e6ac672bba49e8b
> +avcodec/exr: Check ymin vs. h:
>  
>  Fixes: out of array access
>  Fixes: 26532/clusterfuzz-testcase-minimized-
> ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344
>  Fixes: 27443/clusterfuzz-testcase-minimized-
> ffmpeg_AV_CODEC_ID_EXR_fuzzer-5631239813595136
>  
> -Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> -Signed-off-by: Michael Niedermayer 
> -
> -Upstream-Status: Backport
> [https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b
> ]
> +commit id:b0a8b40294ea212c1938348ff112ef1b9bf16bb3
> +avcodec/exr: skip bottom clearing loop when its outside the image:
>  
> -CVE: CVE-2020-35965
> +Fixes: signed integer overflow: 1633771809 * 32960 cannot be
> represented in type 'int'
> +Fixes: 26532/clusterfuzz-testcase-minimized-
> ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344
>  
> +Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
>  Signed-off-by: Michael Niedermayer 
> -Signed-off-by: Khairul Rohaizzat Jamaluddin
> 

It looks like you are removing the CVE and Upstream-Status tag from
this patch. 

It might be better to backport the second commit as a separate patch
instead of squashing it with the first one ...

Thanks,

Anuj

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146965): 
https://lists.openembedded.org/g/openembedded-core/message/146965
Mute This Topic: https://lists.openembedded.org/mt/79945501/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] ffmpeg: CVE-2020-35965 Security Advisory

2021-01-18 Thread Wang Mingyu
refresh patch:CVE-2020-35965.patch

References
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-35965

Signed-off-by: Wang Mingyu 
---
 .../ffmpeg/ffmpeg/CVE-2020-35965.patch| 64 ++-
 1 file changed, 49 insertions(+), 15 deletions(-)

diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch 
b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
index ddab8e9aca..e865fa387d 100644
--- a/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
+++ b/meta/recipes-multimedia/ffmpeg/ffmpeg/CVE-2020-35965.patch
@@ -1,35 +1,69 @@
-From 3e5959b3457f7f1856d997261e6ac672bba49e8b Mon Sep 17 00:00:00 2001
-From: Michael Niedermayer 
-Date: Sat, 24 Oct 2020 22:21:48 +0200
-Subject: [PATCH] avcodec/exr: Check ymin vs. h
+Subject: [PATCH] CVE-2020-35965
+
+commit id:3e5959b3457f7f1856d997261e6ac672bba49e8b
+avcodec/exr: Check ymin vs. h:
 
 Fixes: out of array access
 Fixes: 
26532/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344
 Fixes: 
27443/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5631239813595136
 
-Found-by: continuous fuzzing process 
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
-Signed-off-by: Michael Niedermayer 
-
-Upstream-Status: Backport 
[https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b]
+commit id:b0a8b40294ea212c1938348ff112ef1b9bf16bb3
+avcodec/exr: skip bottom clearing loop when its outside the image:
 
-CVE: CVE-2020-35965
+Fixes: signed integer overflow: 1633771809 * 32960 cannot be represented in 
type 'int'
+Fixes: 
26532/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-5613925708857344
 
+Found-by: continuous fuzzing process 
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
 Signed-off-by: Michael Niedermayer 
-Signed-off-by: Khairul Rohaizzat Jamaluddin 

 ---
- libavcodec/exr.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ libavcodec/exr.c | 18 ++
+ 1 file changed, 10 insertions(+), 8 deletions(-)
 
 diff --git a/libavcodec/exr.c b/libavcodec/exr.c
-index e907c5c46401..8b701d1cd298 100644
+index 68d5bef..a933bbf 100644
 --- a/libavcodec/exr.c
 +++ b/libavcodec/exr.c
-@@ -1830,7 +1830,7 @@ static int decode_frame(AVCodecContext *avctx, void 
*data,
+@@ -1654,7 +1654,7 @@ static int decode_frame(AVCodecContext *avctx, void 
*data,
+ AVFrame *picture = data;
+ uint8_t *ptr;
+ 
+-int i, y, ret;
++int i, y, ret, ymax;
+ int planes;
+ int out_line_size;
+ int nb_blocks;   /* nb scanline or nb tile */
+@@ -1794,7 +1794,7 @@ static int decode_frame(AVCodecContext *avctx, void 
*data,
  // Zero out the start if ymin is not 0
  for (i = 0; i < planes; i++) {
  ptr = picture->data[i];
 -for (y = 0; y < s->ymin; y++) {
-+for (y = 0; y < FFMIN(s->ymin, s->h); y++) {
++  for (y = 0; y < FFMIN(s->ymin, s->h); y++) {
  memset(ptr, 0, out_line_size);
  ptr += picture->linesize[i];
  }
+@@ -1804,14 +1804,16 @@ static int decode_frame(AVCodecContext *avctx, void 
*data,
+ 
+ avctx->execute2(avctx, decode_block, s->thread_data, NULL, nb_blocks);
+ 
++ymax = FFMAX(0, s->ymax + 1);
+ // Zero out the end if ymax+1 is not h
+-for (i = 0; i < planes; i++) {
+-ptr = picture->data[i] + ((s->ymax+1) * picture->linesize[i]);
+-for (y = s->ymax + 1; y < avctx->height; y++) {
+-memset(ptr, 0, out_line_size);
+-ptr += picture->linesize[i];
++if (ymax < avctx->height)
++for (i = 0; i < planes; i++) {
++ptr = picture->data[i] + (ymax * picture->linesize[i]);
++for (y = ymax; y < avctx->height; y++) {
++memset(ptr, 0, out_line_size);
++ptr += picture->linesize[i];
++}
+ }
+-}
+ 
+ picture->pict_type = AV_PICTURE_TYPE_I;
+ *got_frame = 1;
+-- 
+2.25.1
+
-- 
2.25.1




-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#146931): 
https://lists.openembedded.org/g/openembedded-core/message/146931
Mute This Topic: https://lists.openembedded.org/mt/79945501/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-