libvorbis: 3 CVE fixes

CVE-2017-14160, CVE-2018-10393 (same as 14160), and CVE-2018-10392.
These fixes should be in libvorbis 1.3.7.

(From OE-Core rev: 45ff20f325a51fe0ed12d58160c08e04781ce341)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joe Slater
2018-08-15 16:13:26 -07:00
committed by Richard Purdie
parent c8ac784b8f
commit 7204e57262
3 changed files with 70 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
From 018ca26dece618457dd13585cad52941193c4a25 Mon Sep 17 00:00:00 2001
From: Thomas Daede <daede003@umn.edu>
Date: Wed, 9 May 2018 14:56:59 -0700
Subject: [PATCH] CVE-2017-14160: fix bounds check on very low sample rates.
---
CVE: CVE-2017-14160 CVE-2018-10393
Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/018ca26d...]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
---
lib/psy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/psy.c b/lib/psy.c
index 422c6f1..1310123 100644
--- a/lib/psy.c
+++ b/lib/psy.c
@@ -602,8 +602,9 @@ static void bark_noise_hybridmp(int n,const long *b,
for (i = 0, x = 0.f;; i++, x += 1.f) {
lo = b[i] >> 16;
- if( lo>=0 ) break;
hi = b[i] & 0xffff;
+ if( lo>=0 ) break;
+ if( hi>=n ) break;
tN = N[hi] + N[-lo];
tX = X[hi] - X[-lo];
--
1.7.9.5

View File

@@ -0,0 +1,34 @@
From 112d3bd0aaacad51305e1464d4b381dabad0e88b Mon Sep 17 00:00:00 2001
From: Thomas Daede <daede003@umn.edu>
Date: Thu, 17 May 2018 16:19:19 -0700
Subject: [PATCH] Sanity check number of channels in setup.
Fixes #2335.
---
CVE: CVE-2018-10392
Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/112d3bd...]
Signed-off-by: Joe Slater <joe.slater@windriver.com>
---
lib/vorbisenc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/vorbisenc.c b/lib/vorbisenc.c
index 4fc7b62..64a51b5 100644
--- a/lib/vorbisenc.c
+++ b/lib/vorbisenc.c
@@ -684,6 +684,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){
highlevel_encode_setup *hi=&ci->hi;
if(ci==NULL)return(OV_EINVAL);
+ if(vi->channels<1||vi->channels>255)return(OV_EINVAL);
if(!hi->impulse_block_p)i0=1;
/* too low/high an ATH floater is nonsensical, but doesn't break anything */
--
1.7.9.5

View File

@@ -12,6 +12,8 @@ DEPENDS = "libogg"
SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \
file://0001-configure-Check-for-clang.patch \
file://CVE-2018-10392.patch \
file://CVE-2017-14160.patch \
"
SRC_URI[md5sum] = "b7d1692f275c73e7833ed1cc2697cd65"
SRC_URI[sha256sum] = "af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415"