Arch Linux 794 Published by

An openjpeg2 security update has been released for Arch Linux to address multiple issues.



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://bugs.archlinux.org/task/68906
  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