Vulnerability GHSA-4rj6-vrwv-wr8m

High Risk
HIGH RISK
CVSS Score: 8.0
Score Range: 7.0–8.9
High severity vulnerabilities (CVSS 7.0–8.9). Serious vulnerabilities that should be prioritized soon after critical fixes.
2 months ago
July 24, 2026 at 04:11 PM UTC
Microsoft Kiota Workspace-config poisoning: out-of-repo file write + generation-time SSRF
0.2.0 - 0.6.0 and 0.7.1 and 0.8.3 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 and 1.25.1 - 1.31.1
0.2.0 - 0.6.0 and 0.7.1 and 0.8.3 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 and 1.25.1 - 1.31.1

Summary

Microsoft Kiota Workspace-config poisoning: out-of-repo file write + generation-time SSRF

Details

Summary

Microsoft Kiota honors a poisoned .kiota/workspace.json — the workspace configuration that Kiota's documented team workflow has developers commit to their repository — unvalidated on kiota client generate / kiota plugin generate. A repository (or pull request) containing a malicious per-client / per-plugin outputPath causes Kiota, when a developer or CI runs the documented regenerate command, to (CWE-22) write the entire generated client to an arbitrary path outside the workspace — the outputPath was not confined to the workspace root and absolute paths were accepted.

Confirmed on Kiota 1.32.4 (KIOTA_CONFIG_PREVIEW=true, the self-contained linux-x64 release binary).

Details

// .kiota/workspace.json (committed to the repo)
"clients": { "MyClient": {
   "outputPath": "/abs/path/outside/repo/pwned_client"   // -> generated client written here (CWE-22)
}}

Running kiota client generate --client-name MyClient in the repo writes MyClient.cs, P/PRequestBuilder.cs, … to the attacker-chosen outputPath (verified outside the working tree).

Note on descriptionLocation

The per-consumer descriptionLocation is intentionally fetched at generation time — this is how Kiota knows where to pull an updated description from when refreshing a client, the same way any other value in a committed lock/config file is honored. It is not treated as a vulnerability and is unchanged; only outputPath is now confined.

Impact

A malicious or compromised repository — or a malicious PR that edits .kiota/workspace.json — leads to arbitrary file write on the developer's or CI host's filesystem (overwrite source/build files, drop files in auto-loaded locations) whenever a teammate clones/pulls and runs the documented kiota client generate / kiota plugin generate to refresh the client. CWE-22.

This is a different trust boundary from the OpenAPI-description-based findings: the malicious input is the Kiota config, not the spec.

Patches

Fixed in 1.29.1 and 1.32.5 ( https://github.com/microsoft/kiota/pull/7885). On loading a workspace configuration, each client/plugin outputPath is validated to be a relative subdirectory of the workspace: null/empty, rooted paths (POSIX /, UNC \\ / //, Windows drive X:\), and any .. traversal segment are rejected, and the resolved full path must stay under the workspace root. Generation aborts with an error if any consumer's outputPath escapes the workspace.

Remediation

Upgrade to Kiota 1.29.1, 1.32.5 or later. Review any committed workspace configs for outputPath values that point outside the workspace.

Related Vulnerabilities

Other vulnerabilities affecting the same packages

Low Risk
4 hours ago
Kiota: Unsafe oauth_card_path references in Kiota-generated API plugin manifests
==1.25.1, ==1.26.0, ==1.26.1, ==1.27.0, ==1.28.0, ==1.29.0, ==1.29.1, ==1.30.0, ==1.31.0, ==1.31.1, >=1.32.0 <1.32.6, ==1.33.0, ==1.34.0, ==1.34.1 GHSA-6gw6-rv2g-25mg
==1.25.1, ==1.26.0, ==1.26.1, ==1.27.0, ==1.28.0, ==1.29.0, ==1.29.1, ==1.30.0, ==1.31.0, ==1.31.1, >=1.32.0 <1.32.6, ==1.33.0, ==1.34.0, ==1.34.1 GHSA-6gw6-rv2g-25mg
Low Risk
4 hours ago
Kiota: Unsafe oauth_card_path references in Kiota-generated API plugin manifests
GHSA-6gw6-rv2g-25mg
High Risk
4 hours ago
Kiota: Code injection through doc-comment delimiter reformation in Kiota Java and PHP generators
0.5.1 - 0.6.0 and 0.7.1 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 GHSA-rm89-rhwj-9j92
0.5.1 - 0.6.0 and 0.7.1 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 GHSA-rm89-rhwj-9j92
High Risk
4 hours ago
Kiota: Code injection through doc-comment delimiter reformation in Kiota Java and PHP generators
0.5.1 - 0.6.0 and 0.7.1 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 GHSA-rm89-rhwj-9j92
0.5.1 - 0.6.0 and 0.7.1 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 GHSA-rm89-rhwj-9j92
Medium Risk
2 months ago
Microsoft Kiota: Path traversal in generated plugin manifest static_template.file reference (percent-encoding bypass)
0.2.0 - 0.6.0 and 0.7.1 and 0.8.3 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 and 1.25.1 - 1.31.1 and 1.33.0 GHSA-p5rm-jg5c-8c77
0.2.0 - 0.6.0 and 0.7.1 and 0.8.3 - 1.0.1 and 1.2.0 - 1.5.1 and 1.6.1 - 1.7.0 and 1.9.0 - 1.21.0 and 1.23.0 and 1.25.1 - 1.31.1 and 1.33.0 GHSA-p5rm-jg5c-8c77
View all vulnerabilities for these packages

Timeline

Published
2 months ago
July 24, 2026 at 04:11 PM UTC
Fixed (1.32.5)
3 months ago
July 03, 2026 at 07:33 PM UTC
Fixed (1.29.1)
1 month ago
August 14, 2026 at 03:16 PM UTC
Last Modified
1 month ago
August 17, 2026 at 03:00 PM UTC