{"id":"CVE-2023-45681","aliases":["DEBIAN-CVE-2023-45681","EUVD-2023-49971","MGASA-2024-0186","MGASA-2026-0191","OESA-2024-1583","UBUNTU-CVE-2023-45681","openSUSE-SU-2025:0037-1","openSUSE-SU-2025:14642-1","openSUSE-SU-2026:10978-1"],"status":"published","title":"Out of bounds heap buffer write in stb_vorbis","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","severity":{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00512,"percentile":0.44203,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-190","CWE-787"],"published":"2023-10-20T23:26:56Z","modified":"2026-10-26T18:02:58Z","affected":[{"source":"osv","ecosystem":"Debian:12","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20220908.8b5f1f3+ds-1","0.0~git20230129.5736b15+ds-1","0.0~git20230129.5736b15+ds-1.1","0.0~git20230129.5736b15+ds-1.1~exp1","0.0~git20230129.5736b15+ds-1.2","0.0~git20240715.f7f20f39fe4f+ds-1","0.0~git20241109.5c20573+ds-1","0.0~git20250907.fede005+ds-1"]},{"source":"osv","ecosystem":"Debian:13","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20241109.5c20573+ds-1","0.0~git20250907.fede005+ds-1"]},{"source":"osv","ecosystem":"Debian:14","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20241109.5c20573+ds-1","0.0~git20250907.fede005+ds-1"]},{"source":"osv","ecosystem":"Mageia:9","package":"stb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0-0.git20230129.4.1.mga9"}]}],"bundled":2},{"source":"osv","ecosystem":"Mageia:9","package":"libxmp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.0-2.1.mga9"}]}],"bundled":7},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP3","package":"stb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.20220908git8b5f1f3-0.16.oe2203sp3"}]}],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20190817.1.052dce1-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20200713.b42009b+ds-1","0.0~git20210910.af1a5bc+ds-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20230129.5736b15+ds-1","0.0~git20230129.5736b15+ds-1.1","0.0~git20230129.5736b15+ds-1.2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20240715.f7f20f39fe4f+ds-1","0.0~git20241109.5c20573+ds-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20250907.fede005+ds-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"libstb","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0~git20241109.5c20573+ds-1","0.0~git20250907.fede005+ds-1"]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP6","package":"SDL2_sound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.4-bp156.2.3.1"}]}],"bundled":6},{"source":"osv","ecosystem":"openSUSE:Leap 15.6","package":"SDL2_sound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.4-bp156.2.3.1"}]}],"bundled":6},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"SDL2_sound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.4-1.1"}]}],"bundled":3},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"SDL3_sound","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.0-1.1"}]}],"bundled":3}],"products":[{"vendor":"nothings","product":"stb"},{"vendor":"nothings","product":"stb_vorbis.c"}],"references":[{"url":"https://securitylab.github.com/advisories/GHSL-2023-145_GHSL-2023-151_stb_image_h/","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","report"]},{"url":"https://github.com/nothings/stb/blob/5736b15f7ea0ffb08dd38af21067c314d6a3aae9/stb_vorbis.c#L3660-L3677","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","web","report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/LBIPXOBWUHPAH4QHMVP2AWWAPDDZDQ66/","tags":["x_transferred","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/2WRORYQ2Z2XXHPX36JHBUSDVY6IOMW2N/","tags":["x_transferred","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/2MHQQXX27ACLLYUQHWSL3DVCOGUK5ZA4/","tags":["x_transferred","web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/45xxx/CVE-2023-45681.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-45681","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-45681","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2024-0186.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=33205","tags":["report"]},{"url":"https://advisories.mageia.org/MGASA-2026-0191.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=33915","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/CVZWMTH36ES7RCJEMRANBDTL76QBE75Z/","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/FKMOFYKVMD2LPU7O33SEH2RGSY2ZE73K/","tags":["web"]},{"url":"https://www.openeuler.org/en/security/safety-bulletin/detail.html?id=openEuler-SA-2024-1583","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-47212","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2023-45681","tags":["report"]},{"url":"https://github.com/nothings/stb/pull/1559","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-45681","tags":["report"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/PYKIGUIZT6TXJBJESQGK4RWVLRA2YLO4/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1216478","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45676","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45677","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45679","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45680","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45681","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-45682","tags":["web"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/SWCLVWR36I4VV2JTSHFURYZBPAC6ZPCZ/","tags":["advisory"]},{"url":"","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2023-45681","title":"Out of bounds heap buffer write in stb_vorbis","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-20T23:26:56.1Z","modified":"2025-02-13T17:14:08.194Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"cna"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:35:22.640346Z"}],"euvd":[{"id":"EUVD-2023-49971","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-20T23:26:56Z","modified":"2025-02-13T17:14:08Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"updated_at":"2026-11-03T00:03:48.562419Z"}],"nvd":[{"id":"CVE-2023-45681","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-21T00:15:09.607Z","modified":"2026-06-17T06:29:21.287Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"secondary"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-787","CWE-190"],"updated_at":"2026-11-02T14:08:39.058878Z"}],"osv":[{"id":"CVE-2023-45681","title":"Out of bounds heap buffer write in stb_vorbis","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-20T23:26:56.1Z","modified":"2026-06-10T18:29:35.282424293Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T15:44:34.287121Z"},{"id":"DEBIAN-CVE-2023-45681","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-21T00:15:09.607Z","modified":"2026-10-26T18:02:58.445669214Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:40.275853Z"},{"id":"OESA-2024-1583","title":"stb security update","description":"Single-file public domain libraries for C/C++.\r\n\r\nSecurity Fix(es):\r\n\r\nstb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u0026gt;comment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.(CVE-2023-45681)\r\n\r\nA heap-based buffer overflow vulnerability exists in the comment functionality of stb _vorbis.c v1.22. A specially crafted .ogg file can lead to an out-of-bounds write. An attacker can provide a malicious file to trigger this vulnerability.(CVE-2023-47212)","status":"published","published":"2024-05-17T11:07:02Z","modified":"2026-08-18T01:18:25.985831284Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:52:41.095407Z"},{"id":"UBUNTU-CVE-2023-45681","description":"stb_vorbis is a single file MIT licensed library for processing ogg vorbis files. A crafted file may trigger memory write past an allocated heap buffer in `start_decoder`. The root cause is a potential integer overflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make `setup_malloc` allocate less memory than required. Since there is another integer overflow an attacker may overflow it too to force `setup_malloc` to return 0 and make the exploit more reliable. This issue may lead to code execution.","status":"published","published":"2023-10-21T00:15:00Z","modified":"2026-10-17T12:57:21.484872479Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T16:54:22.741943Z"},{"id":"MGASA-2024-0186","title":"Updated stb packages fix security vulnerabilities","description":"stb_vorbis is a single file MIT licensed library for processing ogg\nvorbis files. A crafted file may trigger memory write past an allocated\nheap buffer in `start_decoder`. The root cause is a potential integer\noverflow in `sizeof(char*) * (f-\u003ecomment_list_length)` which may make\n`setup_malloc` allocate less memory than required. Since there is\nanother integer overflow an attacker may overflow it too to force\n`setup_malloc` to return 0 and make the exploit more reliable. This\nissue may lead to code execution.\n","status":"published","published":"2024-05-21T23:17:20Z","modified":"2026-04-16T04:42:21.648781092Z","updated_at":"2026-11-02T15:49:42.684501Z"},{"id":"MGASA-2026-0191","title":"Updated libxmp packages fix security vulnerabilities","description":"CVE-2023-45679: Attempt to free an uninitialized memory pointer in\nvorbis_deinit()\nCVE-2023-45680: Null pointer dereference in vorbis_deinit()\nCVE-2023-45681: Out of bounds heap buffer write\nCVE-2023-45676: Multi-byte write heap buffer overflow in start_decoder()\nCVE-2023-45677: Heap buffer out of bounds write in start_decoder()\nCVE-2023-45682: Wild address read in vorbis_decode_packet_rest()\nCVE-2025-47256 stack-based buffer overflow in depack_pha in\nloaders/prowizard/pha.c via a malformed Pha format tracker module in a\n.mod file.\n","status":"published","published":"2026-06-10T05:07:06Z","modified":"2026-06-10T05:15:04.425477251Z","updated_at":"2026-11-02T15:49:43.178336Z"},{"id":"openSUSE-SU-2025:0037-1","title":"Security update for SDL2_sound","description":"This update for SDL2_sound fixes the following issues:\n\n- Update to release 2.0.4:\n  * Update bundled stb_vorbis to address CVE-2023-45676,\n    CVE-2023-45677, CVE-2023-45679, CVE-2023-45680,\n    CVE-2023-45681, CVE-2023-45682.\n\n- Update to release 2.0.2\n  * No further changes from the last snapshot 2.0.1+g60\n","status":"published","published":"2025-01-30T16:22:36Z","modified":"2026-02-04T03:30:54.399669Z","updated_at":"2026-11-02T16:58:36.976155Z"},{"id":"openSUSE-SU-2025:14642-1","title":"SDL2_sound-devel-2.0.4-1.1 on GA media","description":"These are all security issues fixed in the SDL2_sound-devel-2.0.4-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2025-01-14T00:00:00Z","modified":"2026-02-04T02:20:56.764404Z","updated_at":"2026-11-02T16:58:36.976155Z"},{"id":"openSUSE-SU-2026:10978-1","title":"SDL3_sound-devel-3.2.0-1.1 on GA media","description":"These are all security issues fixed in the SDL3_sound-devel-3.2.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-06-09T00:00:00Z","modified":"2026-06-10T18:24:13.408475949Z","updated_at":"2026-11-02T16:58:38.95195Z"}]}}
