Bug 2017913 (CVE-2021-42716) - CVE-2021-42716 stb: heap-based buffer overflow in stb_image PNM loader
Summary: CVE-2021-42716 stb: heap-based buffer overflow in stb_image PNM loader
Status: NEW
Alias: CVE-2021-42716
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 2018008 2017914 2017915
Blocks: 2017916
TreeView+ depends on / blocked
Reported: 2021-10-27 17:11 UTC by Guilherme de Almeida Suckevicz
Modified: 2021-10-29 18:21 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed:

Attachments (Terms of Use)

Description Guilherme de Almeida Suckevicz 2021-10-27 17:11:58 UTC
An issue was discovered in stb stb_image.h 2.27. The PNM loader incorrectly interpreted 16-bit PGM files as 8-bit when converting to RGBA, leading to a buffer overflow when later reinterpreting the result as a 16-bit buffer. An attacker could potentially have crashed a service using stb_image, or read up to 1024 bytes of non-consecutive heap data without control over the read location.


Upstream patch:

Comment 1 Guilherme de Almeida Suckevicz 2021-10-27 17:12:16 UTC
Created stb tracking bugs for this issue:

Affects: epel-all [bug 2017915]
Affects: fedora-all [bug 2017914]

Comment 2 Ben Beasley 2021-10-27 17:21:27 UTC
Updates applying the fix (PR#1223) are already in Rawhide and are in testing for stable releases. I have aligned all stable releases and EPELs so that stb_image >= 2.27-0.7 contain patches for CVE-2021-28021, CVE-2021-42715, and CVE-2021-42716. I will modify these updates to associate the appropriate newly-created bugs.

Since stb_image is a header-only library, dependent packages need to be rebuilt to benefit from the fix. I have created buildroot overrides to allow this while updates are still in testing, and some dependent packages have already been updated in some releases.

Since stb_image is designed to be bundled, there are probably a number of packages containing bundled copies that are affected. Many of these are likely undeclared (missing Provides: bundled(stb) or Provides: bundled(stb_image)).

Comment 4 Owen Taylor 2021-10-28 16:34:30 UTC
To clarify the status for cogl and clutter:

The cogl library contains an old version of stb_image.c, however this is only compiled in when cogl in when gdk-pixbuf support is disabled. cogl as shipped in  RHEL and Fedora uses gdk-pixbuf, so is not affected by this vulnerability.  This also applies to the bundled copy of cogl inside clutter in RHEL 6 and very old versions of Fedora.

Note You need to log in before you can comment on or make changes to this bug.