CVE Vulnerabilities

CVE-2023-45666

Double Free

Published: Oct 21, 2023 | Modified: Nov 21, 2024
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
Ubuntu
MEDIUM

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

Weakness

The product calls free() twice on the same memory address.

Affected Software

Name Vendor Start Version End Version
Stb_image.h Nothings 2.28 (including) 2.28 (including)
Libstb Ubuntu bionic *
Libstb Ubuntu focal *
Libstb Ubuntu lunar *
Libstb Ubuntu mantic *
Libstb Ubuntu oracular *
Libstb Ubuntu trusty *
Libstb Ubuntu xenial *

Potential Mitigations

References