Every CVE Search/ Get API key

CVE-2023-45675

0 byte write heap buffer overflow in start_decoder in stb_vorbis

6.5 MediumFix available

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

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
None
Integrity
Low
Availability
Low

Exploit likelihood

0.74%Up 0.7 points since Oct 21, 2023
90%50%10%1%

What each source reports

CVE List Score used 6.5

0 byte write heap buffer overflow in start_decoder in stb_vorbis

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
CVE-2023-45675
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Weakness
CWE-787
Updated
2026-11-02
EUVDEUVD-2023-49965 6.5

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
EUVD-2023-49965
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Updated
2026-11-03
NVD 6.5

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
CVE-2023-45675
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-787
Updated
2026-11-02
OSVALPINE-CVE-2023-45675 7.8

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
ALPINE-CVE-2023-45675
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-03
OSV 6.5

0 byte write heap buffer overflow in start_decoder in stb_vorbis

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
CVE-2023-45675
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Weakness
CWE-787
Updated
2026-11-02
OSVDEBIAN-CVE-2023-45675 7.8

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
DEBIAN-CVE-2023-45675
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2024-1410 7.8

stb security update

Single-file public domain libraries for C/C++.

Security Fix(es):

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.(CVE-2023-45675)

Record
OESA-2024-1410
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVOESA-2024-1411 7.8

stb security update

Single-file public domain libraries for C/C++.

Security Fix(es):

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.(CVE-2023-45675)

Record
OESA-2024-1411
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2023-45675 6.5

stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger out of bounds write in f->vendor[len] = (char)'\0';. The root cause is that if the len read in start_decoder is -1 and len + 1 becomes 0 when passed to setup_malloc. The setup_malloc behaves differently when f->alloc.alloc_buffer is pre-allocated. Instead of returning NULL as in malloc case it shifts the pre-allocated buffer by zero and returns the currently available memory block. This issue may lead to code execution.

Record
UBUNTU-CVE-2023-45675
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
stb
Alpine:v3.19
before 0_git20231012-r0
0_git20231012-r0
stb
Alpine:v3.20
before 0_git20231012-r0
0_git20231012-r0
stb
Alpine:v3.21
before 0_git20231012-r0
0_git20231012-r0
stb
Alpine:v3.22
before 0_git20231012-r0
0_git20231012-r0
stb
Alpine:v3.23
before 0_git20231012-r0
0_git20231012-r0
stb
Alpine:v3.24
before 0_git20231012-r0
0_git20231012-r0
libstb
Debian: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
libstb
Debian:13
All versions, plus listed versions
0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1
None known
libstb
Debian:14
All versions, plus listed versions
0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1
None known
stb
openEuler:22.03-LTS-SP2
before 0.20220908git8b5f1f3-0.13.oe2203sp2
0.20220908git8b5f1f3-0.13.oe2203sp2
Show 7 moreShow less
Affected packages
PackageAffectedFixed
stb
openEuler:22.03-LTS-SP3
before 0.20220908git8b5f1f3-0.13.oe2203sp3
0.20220908git8b5f1f3-0.13.oe2203sp3
libstb
Ubuntu:20.04:LTS
All versions, plus listed versions
0.0~git20190817.1.052dce1-1
None known
libstb
Ubuntu:22.04:LTS
All versions, plus listed versions
0.0~git20200713.b42009b+ds-10.0~git20210910.af1a5bc+ds-1
None known
libstb
Ubuntu: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
libstb
Ubuntu:25.10
All versions, plus listed versions
0.0~git20240715.f7f20f39fe4f+ds-10.0~git20241109.5c20573+ds-1
None known
libstb
Ubuntu:26.10
All versions, plus listed versions
0.0~git20250907.fede005+ds-1
None known
libstb
Ubuntu:26.04:LTS
All versions, plus listed versions
0.0~git20241109.5c20573+ds-10.0~git20250907.fede005+ds-1
None known

History

History
RecordedChangedSources
affected, aliases, referencesOSV
aliases, publishedEUVD
first indexedCVE List, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-45675 is a medium vulnerability (CVSS 6.5) 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.74%, the 54th percentile. Fixed in stb 0_git20231012-r0.

References

Show 8 moreShow less
MoveEnter Open