diff options
| -rw-r--r-- | meta-multimedia/recipes-multimedia/sox/sox/CVE-2022-31650.patch | 60 | ||||
| -rw-r--r-- | meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb | 1 |
2 files changed, 61 insertions, 0 deletions
diff --git a/meta-multimedia/recipes-multimedia/sox/sox/CVE-2022-31650.patch b/meta-multimedia/recipes-multimedia/sox/sox/CVE-2022-31650.patch new file mode 100644 index 0000000000..41baad0e27 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/sox/sox/CVE-2022-31650.patch | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | From 3a8e783c58499bb52052c671b9161c43e011a508 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Helmut Grohne <helmut@subdivi.de> | ||
| 3 | Date: Sun, 16 Mar 2025 20:08:04 +0100 | ||
| 4 | Subject: [PATCH] formats+aiff: reject implausibly large number of channels | ||
| 5 | |||
| 6 | Source: https://salsa.debian.org/lts-team/packages/sox/-/blob/debian/14.4.2+git20190427-1+deb10u3/debian/patches/CVE-2022-31650.patch | ||
| 7 | |||
| 8 | CVE: CVE-2022-31650 | ||
| 9 | Upstream-Status: Inactive-Upstream [lastrelease: 2015] | ||
| 10 | Signed-off-by: Peter Marko <peter.marko@siemens.com> | ||
| 11 | --- | ||
| 12 | src/aiff.c | 5 +++++ | ||
| 13 | src/formats_i.c | 10 ++++++++-- | ||
| 14 | 2 files changed, 13 insertions(+), 2 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/src/aiff.c b/src/aiff.c | ||
| 17 | index 3a152c58..6de94f32 100644 | ||
| 18 | --- a/src/aiff.c | ||
| 19 | +++ b/src/aiff.c | ||
| 20 | @@ -619,6 +619,11 @@ int lsx_aiffstartwrite(sox_format_t * ft) | ||
| 21 | At 48 kHz, 16 bits stereo, this gives ~3 hours of audio. | ||
| 22 | Sorry, the AIFF format does not provide for an indefinite | ||
| 23 | number of samples. */ | ||
| 24 | + if (ft->signal.channels >= (0x7f000000 / (ft->encoding.bits_per_sample >> 3))) | ||
| 25 | + { | ||
| 26 | + lsx_fail_errno(ft, SOX_EOF, "too many channels for AIFF header"); | ||
| 27 | + return SOX_EOF; | ||
| 28 | + } | ||
| 29 | return(aiffwriteheader(ft, (uint64_t) 0x7f000000 / ((ft->encoding.bits_per_sample>>3)*ft->signal.channels))); | ||
| 30 | } | ||
| 31 | |||
| 32 | diff --git a/src/formats_i.c b/src/formats_i.c | ||
| 33 | index 7048040d..6a7c27e3 100644 | ||
| 34 | --- a/src/formats_i.c | ||
| 35 | +++ b/src/formats_i.c | ||
| 36 | @@ -19,6 +19,7 @@ | ||
| 37 | */ | ||
| 38 | |||
| 39 | #include "sox_i.h" | ||
| 40 | +#include <limits.h> | ||
| 41 | #include <string.h> | ||
| 42 | #include <sys/stat.h> | ||
| 43 | #include <stdarg.h> | ||
| 44 | @@ -60,9 +61,14 @@ int lsx_check_read_params(sox_format_t * ft, unsigned channels, | ||
| 45 | if (ft->seekable) | ||
| 46 | ft->data_start = lsx_tell(ft); | ||
| 47 | |||
| 48 | - if (channels && ft->signal.channels && ft->signal.channels != channels) | ||
| 49 | + if (channels && ft->signal.channels && ft->signal.channels != channels) { | ||
| 50 | lsx_warn("`%s': overriding number of channels", ft->filename); | ||
| 51 | - else ft->signal.channels = channels; | ||
| 52 | + } else if (channels > SHRT_MAX) { | ||
| 53 | + lsx_fail_errno(ft, EINVAL, "implausibly large number of channels"); | ||
| 54 | + return SOX_EOF; | ||
| 55 | + } else { | ||
| 56 | + ft->signal.channels = channels; | ||
| 57 | + } | ||
| 58 | |||
| 59 | if (rate && ft->signal.rate && ft->signal.rate != rate) | ||
| 60 | lsx_warn("`%s': overriding sample rate", ft->filename); | ||
diff --git a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb index 022a2d6b59..e66c10a56d 100644 --- a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb +++ b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb | |||
| @@ -33,6 +33,7 @@ SRC_URI = "git://git.code.sf.net/p/sox/code;protocol=https;branch=master \ | |||
| 33 | file://CVE-2021-23159_CVE-2021-2317.patch \ | 33 | file://CVE-2021-23159_CVE-2021-2317.patch \ |
| 34 | file://CVE-2021-33844.patch \ | 34 | file://CVE-2021-33844.patch \ |
| 35 | file://CVE-2021-40426.patch \ | 35 | file://CVE-2021-40426.patch \ |
| 36 | file://CVE-2022-31650.patch \ | ||
| 36 | " | 37 | " |
| 37 | 38 | ||
| 38 | # last release was in 2015, use latest hash from 2024-05-30 | 39 | # last release was in 2015, use latest hash from 2024-05-30 |
