stb_image is a single file MIT licensed library for processing images. A crafted image file can trigger stbi__load_gif_main_outofmem attempt to double-free the out variable. This happens in stbi__load_gif_main because when the layers * stride value is zero the behavior is implementation defined, but common that realloc frees the old memory and returns null pointer. Since it attempts to double-free the memory a few lines below the first “free”, the issue can be potentially exploited only in a multi-threaded environment. In the worst case this may lead to code execution.
The product calls free() twice on the same memory address.
| 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 | * |