GCVE-1988-2026-0420

Vulnerability from gna-1988 – Published: 2026-10-02 04:57 – Updated: 2026-10-02 04:57
VLAI
Title
[NotCVE-2026-0016] game-music-emu VGM Command Interpreter Unvalidated 0xE0 PCM Seek Offset Allows Out-of-Bounds Read and Denial of Service
Summary
---------------------------------------------------------------------------- NotCVE Advisory — NotCVE-2026-0016 ---------------------------------------------------------------------------- [-] Summary: An out-of-bounds read in the VGM command interpreter of game-music-emu (libgme), the open-source video game music emulation library, allows an attacker who supplies a crafted .vgm or .vgz file to crash the hosting process or to have adjacent heap memory influence the rendered audio, via a PCM seek command whose offset is never validated. CVSS:3.1 7.1 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H). [-] Affected: game-music-emu (libgme) through 0.6.5, and master as of commit fe8da4b. Default builds; no fixed version is verified. [-] Technical Description: Vgm_Emu_Impl::run_commands() in gme/Vgm_Emu_Impl.cpp handles VGM command 0xE0 (cmd_pcm_seek) by building an interior pointer straight from file content: case cmd_pcm_seek: pcm_pos = pcm_data + pos [3] * 0x1000000L + pos [2] * 0x10000L + pos [1] * 0x100L + pos [0]; pos += 4; break; pcm_data points into the decompressed file buffer, set by a preceding 0x67 (cmd_data_block) command. The 32-bit little-endian operand is attacker-controlled and is compared neither against the declared data-block size nor against data_end, so pcm_pos can be placed up to 4 GiB past the end of the allocation. The following 0x80-0x8F (cmd_pcm_delay) case then executes write_pcm( vgm_time, *pcm_pos++ ), dereferencing the pointer without a bounds check of its own. The reporter's AddressSanitizer log records a SEGV on a read at Vgm_Emu_Impl.cpp:255 in run_commands(). When the computed address is unmapped the read faults and the process terminates; when it is mapped, the byte read becomes part of the decoded audio, so memory adjacent to the file buffer can influence attacker-observable output. Reachability: the VGM emulator is part of the default build, and the command stream runs during gme_start_track(), on the file-open path. VLC's modules/demux/gme.c calls gme_start_track() from its demuxer Open function, and FFmpeg links the library when built with --enable-libgme. No authentication, privileges or configuration change are needed; the file only has to reach a libgme consumer. Upstream issue #165 reports a related but different overread in the same function (unchecked command argument bytes); it is not this defect. Weaknesses: CWE-823: Use of Out-of-range Pointer Offset CWE-125: Out-of-bounds Read CAPEC-540: Overread Buffers CAPEC-129: Pointer Manipulation [-] Credit: Discovered by netspacer1124 (https://github.com/netspacer1124). [-] Full Details and Updates: https://notcve.org/notcve/NotCVE-2026-0016 [-] Main References: https://github.com/libgme/game-music-emu https://raw.githubusercontent.com/libgme/game-music-emu/0.6.5/gme/Vgm_Emu_Impl.cpp https://github.com/videolan/vlc/blob/master/modules/demux/gme.c [-] About NotCVE: NotCVE (https://notcve.org) assigns public, timestamped NotCVE IDs to vulnerabilities not acknowledged by vendors. Vendor will not assign a CVE? Request a NotCVE: https://notcve.org/form/ · Contributors: https://notcve.org/hall/ _______________________________________________ Sent through the Full Disclosure mailing list https://nmap.org/mailman/listinfo/fulldisclosure Web Archives & RSS: https://seclists.org/fulldisclosure/
Severity
No CVSS data available.
Assigner
VULNARCHIVE GNA GNA-1988
GNA scorecard E 38/100 over 445 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
unknown game-music-emu VGM Command Affected: unknown
guessed Create a notification for this product.
Credits

{
  "containers": {
    "cna": {
      "affected": [
        {
          "product": "game-music-emu VGM Command",
          "vendor": "unknown",
          "versions": [
            {
              "status": "affected",
              "version": "unknown"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "advisories"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "----------------------------------------------------------------------------\nNotCVE Advisory \u2014 NotCVE-2026-0016\n----------------------------------------------------------------------------\n\n[-] Summary:\nAn out-of-bounds read in the VGM command interpreter of game-music-emu\n(libgme), the open-source video game music emulation library, allows an\nattacker who supplies a crafted .vgm or .vgz file to crash the hosting\nprocess or to have adjacent heap memory influence the rendered audio, via\na PCM seek command whose offset is never validated. CVSS:3.1 7.1\n(AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H).\n\n[-] Affected:\ngame-music-emu (libgme) through 0.6.5, and master as of commit fe8da4b.\nDefault builds; no fixed version is verified.\n\n[-] Technical Description:\nVgm_Emu_Impl::run_commands() in gme/Vgm_Emu_Impl.cpp handles VGM command\n0xE0 (cmd_pcm_seek) by building an interior pointer straight from file\ncontent:\n\n  case cmd_pcm_seek:\n      pcm_pos = pcm_data + pos [3] * 0x1000000L + pos [2] * 0x10000L +\n              pos [1] * 0x100L + pos [0];\n      pos += 4;\n      break;\n\npcm_data points into the decompressed file buffer, set by a preceding 0x67\n(cmd_data_block) command. The 32-bit little-endian operand is\nattacker-controlled and is compared neither against the declared\ndata-block size nor against data_end, so pcm_pos can be placed up to 4 GiB\npast the end of the allocation. The following 0x80-0x8F (cmd_pcm_delay)\ncase then executes write_pcm( vgm_time, *pcm_pos++ ), dereferencing the\npointer without a bounds check of its own. The reporter\u0027s AddressSanitizer\nlog records a SEGV on a read at Vgm_Emu_Impl.cpp:255 in run_commands().\n\nWhen the computed address is unmapped the read faults and the process\nterminates; when it is mapped, the byte read becomes part of the decoded\naudio, so memory adjacent to the file buffer can influence\nattacker-observable output.\n\nReachability: the VGM emulator is part of the default build, and the\ncommand stream runs during gme_start_track(), on the file-open path. VLC\u0027s\nmodules/demux/gme.c calls gme_start_track() from its demuxer Open\nfunction, and FFmpeg links the library when built with --enable-libgme. No\nauthentication, privileges or configuration change are needed; the file\nonly has to reach a libgme consumer.\n\nUpstream issue #165 reports a related but different overread in the same\nfunction (unchecked command argument bytes); it is not this defect.\n\nWeaknesses:\nCWE-823: Use of Out-of-range Pointer Offset\nCWE-125: Out-of-bounds Read\nCAPEC-540: Overread Buffers\nCAPEC-129: Pointer Manipulation\n\n[-] Credit:\nDiscovered by netspacer1124 (https://github.com/netspacer1124).\n\n[-] Full Details and Updates:\nhttps://notcve.org/notcve/NotCVE-2026-0016\n\n[-] Main References:\nhttps://github.com/libgme/game-music-emu\nhttps://raw.githubusercontent.com/libgme/game-music-emu/0.6.5/gme/Vgm_Emu_Impl.cpp\nhttps://github.com/videolan/vlc/blob/master/modules/demux/gme.c\n\n[-] About NotCVE:\nNotCVE (https://notcve.org) assigns public, timestamped NotCVE IDs to\nvulnerabilities not acknowledged by vendors. Vendor will not assign a CVE?\nRequest a NotCVE: https://notcve.org/form/ \u00b7 Contributors:\nhttps://notcve.org/hall/\n_______________________________________________\nSent through the Full Disclosure mailing list\nhttps://nmap.org/mailman/listinfo/fulldisclosure\nWeb Archives \u0026 RSS: https://seclists.org/fulldisclosure/"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-125",
              "description": "CWE-125",
              "lang": "en",
              "type": "CWE"
            },
            {
              "cweId": "CWE-823",
              "description": "CWE-823",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-02T04:57:33Z",
        "orgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
        "shortName": "VULNARCHIVE"
      },
      "references": [
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/92"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://seclists.org/fulldisclosure/2026/Sep/92"
        },
        {
          "url": "https://github.com/libgme/game-music-emu"
        },
        {
          "url": "https://github.com/netspacer1124"
        },
        {
          "url": "https://github.com/videolan/vlc/blob/master/modules/demux/gme.c"
        },
        {
          "url": "https://nmap.org/mailman/listinfo/fulldisclosure"
        },
        {
          "url": "https://notcve.org"
        },
        {
          "url": "https://notcve.org/form/"
        },
        {
          "url": "https://notcve.org/hall/"
        },
        {
          "url": "https://notcve.org/notcve/NotCVE-2026-0016"
        },
        {
          "url": "https://raw.githubusercontent.com/libgme/game-music-emu/0.6.5/gme/Vgm_Emu_Impl.cpp"
        },
        {
          "url": "https://seclists.org/fulldisclosure/"
        }
      ],
      "source": {
        "defect": [
          "https://seclists.org/fulldisclosure/2026/Sep/92"
        ],
        "discovery": "EXTERNAL"
      },
      "title": "[NotCVE-2026-0016] game-music-emu VGM Command Interpreter Unvalidated 0xE0 PCM Seek Offset Allows Out-of-Bounds Read and Denial of Service",
      "x_gcve": [
        {
          "recordType": "advisory",
          "relationships": [],
          "vulnId": "GCVE-1988-2026-0420",
          "x_vulnarchive": {
            "archiveUrl": "https://vuln.freearchive.org/archive/full-disclosure/2026/Sep/92",
            "automated": true,
            "contentSha256": "fb1c944970260cb0d7b8467a8c1a9c2d3bbaec1f2d89a79624890ae0dd35bd4a",
            "evidenceScore": 8,
            "messageId": "",
            "originalUrl": "https://seclists.org/fulldisclosure/2026/Sep/92",
            "policy": "vulnarchive-1",
            "sourceFormat": "text/html",
            "sourcePublishedAt": "2026-09-29T08:25:18Z"
          }
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "4e2abfbf-4a2a-4b76-a4e0-d77c18ba156c",
    "assignerShortName": "VULNARCHIVE",
    "datePublished": "2026-10-02T04:57:33Z",
    "dateUpdated": "2026-10-02T04:57:33Z",
    "state": "PUBLISHED",
    "vulnId": "GCVE-1988-2026-0420"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.