Skip to content
Heist/ feed
Back to feed
High

GZDoom engine allows arbitrary code execution via ZScript actor states

Type: advisorySources: OSV

GZDoom is a feature centric port for all Doom engine games. GZDoom is an open source Doom engine. In versions 4.14.2 and earlier, ZScript actor state handling allows scripts to read arbitrary addresses, write constants into the JIT-compiled code section, and redirect control flow through crafted FState and VMFunction structures. A script can copy FState structures into a writable buffer, modify function pointers and state transitions, and cause execution of attacker-controlled bytecode, leading to arbitrary code execution.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2025-54065
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:00 UTC · Revision 1

Source evidence

GZDoom engine allows arbitrary code execution via ZScript actor states

core-osv · Original source

Published 3 Dec 2025, 17:02 UTC

GZDoom is a feature centric port for all Doom engine games. GZDoom is an open source Doom engine. In versions 4.14.2 and earlier, ZScript actor state handling allows scripts to read arbitrary addresses, write constants into the JIT-compiled code section, and redirect control flow through crafted FState and VMFunction structures. A script can copy FState structures into a writable buffer, modify function pointers and state transitions, and cause execution of attacker-controlled bytecode, leading to arbitrary code execution.

osv:CVE-2025-54065
Complete source record
{
  "id": "0860e66bda980096f696db91f43fa0107c76c8833263ff5d8f231c434ebb74ff",
  "url": "https://osv.dev/vulnerability/CVE-2025-54065",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "GZDoom engine allows arbitrary code execution via ZScript actor states",
    "summary": "GZDoom is a feature centric port for all Doom engine games. GZDoom is an open source Doom engine. In versions 4.14.2 and earlier, ZScript actor state handling allows scripts to read arbitrary addresses, write constants into the JIT-compiled code section, and redirect control flow through crafted FState and VMFunction structures. A script can copy FState structures into a writable buffer, modify function pointers and state transitions, and cause execution of attacker-controlled bytecode, leading to arbitrary code execution.",
    "evidence": "osv:CVE-2025-54065",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2025-54065",
      "aliases": [
        "CVE-2025-54065",
        "GHSA-prhc-chfw-32jg"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/zdoom/gzdoom",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "99aa489d09015a95bb78df2b30ede29f328cc874"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "4.14.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "4.14.2"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "g4.14.2",
            "g4.14.1",
            "g4.15pre",
            "g4.14pre",
            "g4.13pre",
            "g4.12pre",
            "g4.11pre",
            "g4.10pre",
            "g4.9pre",
            "g4.8pre",
            "g4.7.0pre",
            "g4.6pre",
            "g4.5pre",
            "g4.4pre",
            "g4.3pre",
            "g4.2pre",
            "g4.1pre",
            "g3.6pre",
            "g3.5pre",
            "g3.4pre",
            "g3.3pre",
            "g3.2pre",
            "g3.0pre",
            "2.5pre",
            "g2.4pre",
            "ok3",
            "g2.3pre",
            "g2.2pre",
            "g2.1.pre",
            "G1.9pre",
            "2.8pre",
            "2.7.0",
            "2.5.0",
            "2.3.1",
            "2.3.0",
            "2.2.0",
            "2.1.7",
            "2.1.6",
            "2.1.5",
            "2.1.4",
            "2.1.3",
            "2.1.2",
            "2.1.1",
            "notok#2",
            "2.1.0",
            "ci_deps"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-54065.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.014333793Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/54xxx/CVE-2025-54065.json",
        "https://github.com/ZDoom/gzdoom/security/advisories/GHSA-prhc-chfw-32jg",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-54065"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-913"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/54xxx/CVE-2025-54065.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-54065",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504418,
  "published_at": "2025-12-03T17:02:56.603+00:00"
}