Subject: [ASA-202012-21] openjpeg2: multiple issues Arch Linux Security Advisory ASA-202012-21 ========================================== Severity: Medium Date : 2020-12-09 CVE-ID : CVE-2019-12973 CVE-2020-6851 CVE-2020-8112 CVE-2020-15389 CVE-2020-27814 CVE-2020-27824 CVE-2020-27841 CVE-2020-27842 CVE-2020-27843 CVE-2020-27845 Package : openjpeg2 Type : multiple issues Remote : No Link : https://security.archlinux.org/AVG-1339 Summary ======= The package openjpeg2 before version 2.4.0-1 is vulnerable to multiple issues including arbitrary code execution and denial of service. Resolution ========== Upgrade to 2.4.0-1. # pacman -Syu "openjpeg2>=2.4.0-1" The problems have been fixed upstream in version 2.4.0. Workaround ========== None. Description =========== - CVE-2019-12973 (denial of service) In OpenJPEG before version 2.4.0, there is excessive iteration in the opj_t1_encode_cblks function of openjp2/t1.c. Remote attackers could leverage this vulnerability to cause a denial of service via a crafted bmp file. This issue is similar to CVE-2018-6616. - CVE-2020-6851 (arbitrary code execution) OpenJPEG before version 2.4.0 has a heap-based buffer overflow in opj_t1_clbl_decode_processor in openjp2/t1.c because of lack of opj_j2k_update_image_dimensions validation. - CVE-2020-8112 (arbitrary code execution) opj_t1_clbl_decode_processor in openjp2/t1.c in OpenJPEG before version 2.4.0 has a heap-based buffer overflow in the qmfbid==1 case, a different issue than CVE-2020-6851. - CVE-2020-15389 (denial of service) jp2/opj_decompress.c in OpenJPEG before version 2.4.0 has a use-after- free that can be triggered if there is a mix of valid and invalid files in a directory operated on by the decompressor. Triggering a double- free may also be possible. This is related to calling opj_image_destroy twice. - CVE-2020-27814 (arbitrary code execution) A heap-buffer overwrite error was discovered in lib/openjp2/mqc.c in OpenJPEG before version 2.4.0. The vulnerability causes an out-of- bounds write, which may lead to remote denial of service or possibly remote code execution. - CVE-2020-27824 (denial of service) In OpenJPEG before version 2.4.0, if too many decomposition levels are supplied to the encoder, it could cause a global buffer overflow to out-of-bounds read in the opj_dwt_calc_explicit_stepsizes() function. - CVE-2020-27841 (denial of service) An out-of-bounds read was discovered in lib/openjp2/pi.c:623 in OpenJPEG before version 2.4.0. - CVE-2020-27842 (denial of service) A null pointer dereference issue was found in lib/openjp2/tgt.c when a small precincts size, the option "-TP C" and non (0,0) grid offset are given in OpenJPEG before version 2.4.0. - CVE-2020-27843 (denial of service) An out-of-bounds read was found in opj_t2_encode_packet when small precincts and an origin shift are given in OpenJPEG before version 2.4.0. - CVE-2020-27845 (denial of service) An out-of-bounds read was discovered in lib/openjp2/pi.c:312 in OpenJPEG before version 2.4.0. Impact ====== A local attacker might be able to execute arbitrary code or crash the application via crafted JPEG content. References ========== https://github.com/uclouvain/openjpeg/issues/1222 https://github.com/uclouvain/openjpeg/pull/1185 https://github.com/uclouvain/openjpeg/commit/21399f6b7d318fcdf4406d5e88723c4922202aa3 https://github.com/uclouvain/openjpeg/commit/3aef207f90e937d4931daf6d411e092f76d82e66 https://github.com/uclouvain/openjpeg/issues/1228 https://github.com/uclouvain/openjpeg/pull/1229 https://github.com/uclouvain/openjpeg/commit/024b8407392cb0b82b04b58ed256094ed5799e04 https://github.com/uclouvain/openjpeg/issues/1231 https://github.com/uclouvain/openjpeg/pull/1232 https://github.com/uclouvain/openjpeg/commit/05f9b91e60debda0e83977e5e63b2e66486f7074 https://github.com/uclouvain/openjpeg/issues/1261 https://github.com/uclouvain/openjpeg/pull/1262 https://github.com/uclouvain/openjpeg/commit/e8e258ab049240c2dd1f1051b4e773b21e2d3dc0 https://github.com/uclouvain/openjpeg/issues/1283 https://github.com/uclouvain/openjpeg/pull/1303 https://github.com/uclouvain/openjpeg/commit/4ce7d285a55d29b79880d0566d4b010fe1907aa9 https://github.com/uclouvain/openjpeg/issues/1286 https://github.com/uclouvain/openjpeg/pull/1292 https://github.com/uclouvain/openjpeg/commit/6daf5f3e1ec6eff03b7982889874a3de6617db8d https://github.com/uclouvain/openjpeg/issues/1293 https://github.com/uclouvain/openjpeg/pull/1295 https://github.com/uclouvain/openjpeg/pull/1300 https://github.com/uclouvain/openjpeg/commit/c9380ed0f8cc4794fc71d556ea23ae61e32247af https://github.com/uclouvain/openjpeg/commit/00383e162ae2f8fc951f5745bf1011771acb8dce https://github.com/uclouvain/openjpeg/issues/1294 https://github.com/uclouvain/openjpeg/pull/1296 https://github.com/uclouvain/openjpeg/commit/fbd30b064f8f9607d500437b6fedc41431fd6cdc https://github.com/uclouvain/openjpeg/issues/1297 https://github.com/uclouvain/openjpeg/pull/1298 https://github.com/uclouvain/openjpeg/commit/38d661a3897052c7ff0b39b30c29cb067e130121 https://github.com/uclouvain/openjpeg/issues/1302 https://github.com/uclouvain/openjpeg/pull/1304 https://github.com/uclouvain/openjpeg/commit/8f5aff1dff510a964d3901d0fba281abec98ab63 https://security.archlinux.org/CVE-2019-12973 https://security.archlinux.org/CVE-2020-6851 https://security.archlinux.org/CVE-2020-8112 https://security.archlinux.org/CVE-2020-15389 https://security.archlinux.org/CVE-2020-27814 https://security.archlinux.org/CVE-2020-27824 https://security.archlinux.org/CVE-2020-27841 https://security.archlinux.org/CVE-2020-27842 https://security.archlinux.org/CVE-2020-27843 https://security.archlinux.org/CVE-2020-27845