{"id":"CVE-2025-54065","state":"PUBLISHED","title":"GZDoom engine allows arbitrary code execution via ZScript actor states","description":"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.","publishedAt":"2025-12-03T17:02:56.603Z","updatedAt":"2025-12-03T21:39:49.369Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["ZDoom gzdoom"],"affected":[{"vendor":"ZDoom","product":"gzdoom","versions":[{"version":"<= 4.14.2","status":"affected"}]}],"references":["https://github.com/ZDoom/gzdoom/security/advisories/GHSA-prhc-chfw-32jg"],"weaknesses":["CWE-913"],"ingestedAt":"2026-10-29T20:09:31.862Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/54xxx/CVE-2025-54065.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-54065","state":"PUBLISHED","datePublished":"2025-12-03T17:02:56.603Z","dateUpdated":"2025-12-03T21:39:49.369Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2025-07-16T13:22:18.204Z"},"containers":{"cna":{"title":"GZDoom engine allows arbitrary code execution via ZScript actor states","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"ZDoom","product":"gzdoom","versions":[{"version":"<= 4.14.2","status":"affected"}]}],"references":[{"url":"https://github.com/ZDoom/gzdoom/security/advisories/GHSA-prhc-chfw-32jg","name":"https://github.com/ZDoom/gzdoom/security/advisories/GHSA-prhc-chfw-32jg","tags":["x_refsource_CONFIRM"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-913","lang":"en","description":"CWE-913: Improper Control of Dynamically-Managed Code Resources","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2025-12-03T17:02:56.603Z"},"source":{"advisory":"GHSA-prhc-chfw-32jg","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-12-03T21:39:32.116409Z","id":"CVE-2025-54065","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-12-03T21:39:49.369Z"}}]}}}