Double Free Affecting stb package, versions <0_git20231012-r0


Severity

Recommended
0.0
critical
0
10

Snyk's Security Team recommends NVD's CVSS assessment. Learn more

Threat Intelligence

EPSS
0.24% (65th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Double Free vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-ALPINE321-STB-8489417
  • published6 Dec 2024
  • disclosed21 Oct 2023

Introduced: 21 Oct 2023

CVE-2023-45666  (opens in a new tab)
CWE-415  (opens in a new tab)

How to fix?

Upgrade Alpine:3.21 stb to version 0_git20231012-r0 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream stb package and not the stb package as distributed by Alpine. See How to fix? for Alpine:3.21 relevant fixed versions and status.

stb_image is a single file MIT licensed library for processing images. It may look like stbi__load_gif_main doesn’t give guarantees about the content of output value *delays upon failure. Although it sets *delays to zero at the beginning, it doesn’t do it in case the image is not recognized as GIF and a call to stbi__load_gif_main_outofmem only frees possibly allocated memory in *delays without resetting it to zero. Thus it would be fair to say the caller of stbi__load_gif_main is responsible to free the allocated memory in *delays only if stbi__load_gif_main returns a non null value. However at the same time the function may return null value, but fail to free the memory in *delays if internally stbi__convert_format is called and fails. Thus the issue may lead to a memory leak if the caller chooses to free delays only when stbi__load_gif_main didn’t fail or to a double-free if the delays is always freed

CVSS Scores

version 3.1