CVE-2026-59859High▾ TwilightMicrosoft Kiota: Code Generation Literal Injection in Kiota PHP Generator
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 41.3 · likelihood 0.3 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 24.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
1.0%
1.0% → 1.4%
The Kiota PHP code generator is vulnerable to a code generation literal injection attack. The generator embeds string values from OpenAPI fields (e.g. description, default values, and property names) directly into PHP double-quoted string literals without properly escaping the $ character. Since PHP evaluates string interpolation expressions like "${expr}", "$var", and "{$obj->prop}" within double-quoted strings at runtime, an attacker who controls an OpenAPI specification file can inject arbitrary PHP code into generated model and request-builder classes.
Developers using Kiota to generate PHP API clients from external or untrusted OpenAPI specifications
Teams with CI/CD pipelines configured to automatically regenerate client code from remote specs
Applications that deploy generated PHP code to production servers
Affected component: StringExtensions.cs
Root cause: The shared SanitizeDoubleQuote() function in Writers/StringExtensions.cs does not escape the $ character. As a result, any schema-derived string emitted as a PHP double-quoted literal preserves $-prefixed interpolation constructs (${...}, $var, {$...}) verbatim, which PHP evaluates at runtime instead of treating as literal text. This is the same class of code-generation literal-injection flaw previously fixed for the Ruby generator (# interpolation), recurring here as a missed variant for PHP's $ interpolation in the sibling sanitizer helper.
OpenAPI description and default fields in schema properties
Property wire-name keys embedded in deserializer/serializer methods
Any schema-derived string embedded in PHP double-quoted literals
Severity: Critical when generated code reaches production; High for CI/CD environments with access to production secrets; Medium for public third-party specs; Low for developer-controlled specs.
If you cannot upgrade immediately:
$ character. Remove or replace any suspicious strings before code generation.${, $var, or {$ patterns.$ characters in double-quoted string literals (replace $ with \$).Upgrade Kiota to 1.32.4 or later.
Regenerate/refresh existing generated clients as a precaution:
Refreshing generated clients ensures previously generated vulnerable code is replaced with hardened output.
Microsoft.OpenApi.Kiota < 1.32.4Microsoft.OpenApi.Kiota.Builder < 1.32.4Upgrade to a patched release:
Microsoft.OpenApi.Kiota 1.32.4Microsoft.OpenApi.Kiota.Builder 1.32.4Connected by shared product, vendor, weakness, or advisory.
CVE-2026-59860HighMicrosoft Kiota: XML Doc-Comment Newline Breakout Code Injection
CVE-2026-59861High· 7.5Microsoft Kiota: Code Generation Literal Injection in Kiota Ruby Generator
CVE-2026-59862High· 7.5Microsoft Kiota: Code Generation Literal Injection in Kiota Python Generator
CVE-2026-59865CriticalMicrosoft Kiota: Command injection via x-ms-kiota-info dependencyInstallCommand surfaced by `kiota info`
CVE-2026-59866HighMicrosoft Kiota: Arbitrary file write + code-injection via x-ms-kiota-info clientClassName and clientNamespaceName
CVE-2025-14576High· 7.8Insufficient validation of node IDs in Qt SVG module allows arbitrary QML/JavaScript code injection when loading malicious SVG files through the VectorImage component in Qt Quick