CVE-2023-45663
Disclosure of uninitialized memory in stbi__tga_load in stb_image
CVE-2023-45663 is a medium vulnerability (CVSS 5.3) in Nothings Stb, published October 20, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.66%, the 51st percentile. Fixed in stb 0_git20231012-r0.
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
Disclosure of uninitialized memory in stbi__tga_load in stb_image
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
CVE-2023-45663- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
EUVDEUVD-2023-49954
5.3
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
EUVD-2023-49954- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Updated
- 2026-11-03
NVD
5.3
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
CVE-2023-45663- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
OSVALPINE-CVE-2023-45663
5.5
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
ALPINE-CVE-2023-45663- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
OSV
5.3
Disclosure of uninitialized memory in stbi__tga_load in stb_image
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
CVE-2023-45663- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2023-45663
5.5
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
DEBIAN-CVE-2023-45663- CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVOESA-2024-1230
8.1
stb security update
Single-file public domain libraries for C/C++.
Security Fix(es):
stb_image is a single file MIT licensed library for processing images. When stbi_set_flip_vertically_on_load is set to TRUE and req_comp is set to a number that doesn’t match the real number of components per pixel, the library attempts to flip the image vertically. A crafted image file can trigger memcpy out-of-bounds read because bytes_per_pixel used to calculate bytes_per_row doesn’t match the real image array dimensions.(CVE-2023-45662)
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.(CVE-2023-45663)
- Record
OESA-2024-1230- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVOESA-2024-1231
8.1
stb security update
Single-file public domain libraries for C/C++.
Security Fix(es):
stb_image is a single file MIT licensed library for processing images. When stbi_set_flip_vertically_on_load is set to TRUE and req_comp is set to a number that doesn’t match the real number of components per pixel, the library attempts to flip the image vertically. A crafted image file can trigger memcpy out-of-bounds read because bytes_per_pixel used to calculate bytes_per_row doesn’t match the real image array dimensions.(CVE-2023-45662)
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.(CVE-2023-45663)
- Record
OESA-2024-1231- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2023-45663
5.3
stb_image is a single file MIT licensed library for processing images. The stbi__getn function reads a specified number of bytes from context (typically a file) into the specified buffer. In case the file stream points to the end, it returns zero. There are two places where its return value is not checked: In the stbi__hdr_load function and in the stbi__tga_load function. The latter of the two is likely more exploitable as an attacker may also control the size of an uninitialized buffer.
- Record
UBUNTU-CVE-2023-45663- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N - CVSS 3.1
- 5.5 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
stbAlpine:v3.19 |
before 0_git20231012-r0 | 0_git20231012-r0 |
stbAlpine:v3.20 |
before 0_git20231012-r0 | 0_git20231012-r0 |
stbAlpine:v3.21 |
before 0_git20231012-r0 | 0_git20231012-r0 |
stbAlpine:v3.22 |
before 0_git20231012-r0 | 0_git20231012-r0 |
stbAlpine:v3.23 |
before 0_git20231012-r0 | 0_git20231012-r0 |
stbAlpine:v3.24 |
before 0_git20231012-r0 | 0_git20231012-r0 |
libstbDebian:12 |
All versions, plus listed versions 0.0~git20220908.8b5f1f3+ds-10.0~git20230129.5736b15+ds-10.0~git20230129.5736b15+ds-1.10.0~git20230129.5736b15+ds-1.1~exp10.0~git20230129.5736b15+ds-1.20.0~git20240715.f7f20f39fe4f+ds-10.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1 |
None known |
libstbDebian:13 |
All versions, plus listed versions 0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1 |
None known |
libstbDebian:14 |
All versions, plus listed versions 0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1 |
None known |
stbopenEuler:22.03-LTS-SP2 |
before 0.20220908git8b5f1f3-0.10.oe2203sp2 | 0.20220908git8b5f1f3-0.10.oe2203sp2 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
stbopenEuler:22.03-LTS-SP3 |
before 0.20220908git8b5f1f3-0.10.oe2203sp3 | 0.20220908git8b5f1f3-0.10.oe2203sp3 |
libstbUbuntu:20.04:LTS |
All versions, plus listed versions 0.0~git20190817.1.052dce1-1 |
None known |
libstbUbuntu:22.04:LTS |
All versions, plus listed versions 0.0~git20200713.b42009b+ds-10.0~git20210910.af1a5bc+ds-1 |
None known |
libstbUbuntu:24.04:LTS |
All versions, plus listed versions 0.0~git20230129.5736b15+ds-10.0~git20230129.5736b15+ds-1.10.0~git20230129.5736b15+ds-1.2 |
None known |
libstbUbuntu:25.10 |
All versions, plus listed versions 0.0~git20240715.f7f20f39fe4f+ds-10.0~git20241109.5c20573+ds-1 |
None known |
libstbUbuntu:26.10 |
All versions, plus listed versions 0.0~git20250907.fede005+ds-1 |
None known |
libstbUbuntu:26.04:LTS |
All versions, plus listed versions 0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1 |
None known |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | affected, aliases, references | OSV |
| 2026-11-03 | aliases, published | EUVD |
| 2026-11-02 | created | CVE List, NVD, OSV |
References
securitylab.github.com/advisories/GHSL-2023-145_GHSL-2023-151_stb_image_h
github.com/nothings/stb/blob/5736b15f7ea0ffb08dd38af21067c314d6a3aae9/stb_image.h
lists.fedoraproject.org/archives/list/[email protected]/message/UVQ7ONFH5GWLMXYEAJG32A3EUKUCEVCR
lists.fedoraproject.org/archives/list/[email protected]/message/QVABVF4GEM6BYD5L4L64RCRSXUHY6LGN
lists.fedoraproject.org/archives/list/[email protected]/message/NMXKOKPP4BKTNUTF5KSRDQAWOUILQZNO
security.alpinelinux.org/vuln/CVE-2023-45663
Show 8 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45663.json
nvd.nist.gov/vuln/detail/CVE-2023-45663
security-tracker.debian.org/tracker/CVE-2023-45663
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1230
nvd.nist.gov/vuln/detail/CVE-2023-45662
openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1231
ubuntu.com/security/CVE-2023-45663
cve.org/CVERecord?id=CVE-2023-45663