CVE-2026-15343
Path traversal vulnerability in GitHub Enterprise Server allowed writing files to arbitrary repository paths, including GitHub Actions workflow files, via unchecked Dependabot dependency-file paths
A path traversal vulnerability was identified in GitHub Enterprise Server that allowed an attacker with code execution inside a Dependabot updater container to write files to arbitrary repository paths, including GitHub Actions workflow files under .github/workflows/, because path validation did not check the actual write destination. The initial fix in versions 3.21.3, 3.20.5, 3.19.9, 3.18.12, and 3.17.18 was incomplete because validation checked the supplied symlink target, while the publisher wrote the file using its directory and name. Writing GitHub Actions workflow files required the Dependabot installation to have workflows: write permission. Depending on repository permissions and workflow configuration, including a relevant pull_request_target workflow or auto-merge, an injected workflow could execute with access to GitHub Actions secrets. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.23 and was fully fixed in versions 3.22.3, 3.21.8, 3.20.10, and 3.19.14. This vulnerability was reported via the GitHub Bug Bounty program.
Fixes and workarounds
Fix
Upgrade to GitHub Enterprise Server 3.19.14, 3.20.10, 3.21.8, or 3.22.3, or a later patch release of the applicable release line. The previously announced fixes in 3.17.18, 3.18.12, 3.19.9, 3.20.5, and 3.21.3 were incomplete and do not fully remediate this vulnerability. No complete fix is available for the 3.17 or 3.18 release lines; users of those lines must upgrade to a release containing the complete fix.
Source: CNA: GitHub_PFix
The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.
Source: CNA: GitHub_PFix
The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.
Source: CNA: GitHub_PFix
The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.
Source: CNA: GitHub_PFix
The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.
Source: CNA: GitHub_PAffected products and versions
| Product | Versions | Authority |
|---|---|---|
| Enterprise Server GitHub |
≥ 3.17.0; < 3.17.* (affected, semver) ≥ 3.18.0; < 3.18.* (affected, semver) ≥ 3.19.0; < 3.19.* (affected, semver); unaffected at 3.19.14 ≥ 3.20.0; < 3.20.* (affected, semver); unaffected at 3.20.10 ≥ 3.21.0; < 3.21.* (affected, semver); unaffected at 3.21.8 ≥ 3.22.0; < 3.22.* (affected, semver); unaffected at 3.22.3 Other versions: unknown |
CNA: GitHub_P |
Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.
CVSS assessments
| Version / score | Vector | Authority |
|---|---|---|
| 4.0 / 8.6 high |
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N | CNA: GitHub_P |
| 4.0 / 8.6 high |
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X | NVD: [email protected] |
Exploit evidence
No exploit evidence in collected sources. This is not proof of no exploitation.
References
- https://docs.github.com/en/[email protected]/admin/release-notes#3.17.18CNA: GitHub_P · release-notes, x_incomplete-fix
- https://docs.github.com/en/[email protected]/admin/release-notes#3.18.12CNA: GitHub_P · release-notes, x_incomplete-fix
- https://docs.github.com/en/[email protected]/admin/release-notes#3.19.9CNA: GitHub_P · release-notes, x_incomplete-fix
- https://docs.github.com/en/[email protected]/admin/release-notes#3.20.5CNA: GitHub_P · release-notes, x_incomplete-fix
- https://docs.github.com/en/[email protected]/admin/release-notes#3.21.3CNA: GitHub_P · release-notes, x_incomplete-fix
- https://docs.github.com/en/[email protected]/admin/release-notes#3.19.14CNA: GitHub_P · release-notes, patch
- https://docs.github.com/en/[email protected]/admin/release-notes#3.20.10CNA: GitHub_P · release-notes, patch
- https://docs.github.com/en/[email protected]/admin/release-notes#3.21.8CNA: GitHub_P · release-notes, patch
- https://docs.github.com/en/[email protected]/admin/release-notes#3.22.3CNA: GitHub_P · release-notes, patch
- https://docs.github.com/en/[email protected]/admin/release-notes#3.17.18[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.18.12[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.19.14[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.19.9[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.20.10[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.20.5[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.21.3[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.21.8[email protected]
- https://docs.github.com/en/[email protected]/admin/release-notes#3.22.3[email protected]
For agents and automation
Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.
Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.
Endpoints and access details
https://api.y2.dev/api/v2/cyber/cveshttps://api.y2.dev/api/v2/cyber/cves/{cveId}
A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.
For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.