From fa1063f8a38064a1cddcd65b1d08ca178f2ae910 Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Sat, 4 Mar 2023 12:37:28 -0500 Subject: [PATCH] Fix Null Pointer Dereference in gf_isom_parse_movie_boxes_internal, CVE-2022-29340 --- debian/patches/CVE-2022-29340.patch | 36 +++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 37 insertions(+) create mode 100644 debian/patches/CVE-2022-29340.patch diff --git a/debian/patches/CVE-2022-29340.patch b/debian/patches/CVE-2022-29340.patch new file mode 100644 index 0000000..7a3aaa7 --- /dev/null +++ b/debian/patches/CVE-2022-29340.patch @@ -0,0 +1,36 @@ +commit 37592ad86c6ca934d34740012213e467acc4a3b0 +Author: jeanlf +Date: Tue Apr 12 10:35:52 2022 +0200 + + fixed #2163 + +Index: gpac/src/isomedia/box_funcs.c +=================================================================== +--- gpac.orig/src/isomedia/box_funcs.c ++++ gpac/src/isomedia/box_funcs.c +@@ -303,8 +303,10 @@ GF_Err gf_isom_box_parse_ex(GF_Box **out + if (e && (e != GF_ISOM_INCOMPLETE_FILE)) { + gf_isom_box_del(newBox); + *outBox = NULL; ++ if (is_root_box && (e==GF_SKIP_BOX)) ++ e = GF_ISOM_INVALID_FILE; + +- if (!skip_logs) { ++ if (!skip_logs && (e!=GF_SKIP_BOX)) { + GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[iso file] Read Box \"%s\" (start "LLU") failed (%s) - skipping\n", gf_4cc_to_str(type), start, gf_error_to_string(e))); + } + //we don't try to reparse known boxes that have been failing (too dangerous) +Index: gpac/src/isomedia/isom_intern.c +=================================================================== +--- gpac.orig/src/isomedia/isom_intern.c ++++ gpac/src/isomedia/isom_intern.c +@@ -373,7 +373,8 @@ static GF_Err gf_isom_parse_movie_boxes_ + e = gf_isom_parse_root_box(&a, mov->movieFileMap->bs, boxType, bytesMissing, progressive_mode); + + if (e >= 0) { +- ++ //safety check, should never happen ++ if (!a) return GF_ISOM_INVALID_FILE; + } else if (e == GF_ISOM_INCOMPLETE_FILE) { + /*our mdat is uncomplete, only valid for READ ONLY files...*/ + if (mov->openMode != GF_ISOM_OPEN_READ) { diff --git a/debian/patches/series b/debian/patches/series index 9740ec7..5560178 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ gcc-optflags.patch dont-err-build-on-uknown-system.patch CVE-2022-29339.patch +CVE-2022-29340.patch -- 2.30.2