Description
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.
References9
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
- docs.github.com/en/[email protected]/admin/release-notes#3…
Metrics
- CVSS 4.0
-
8.6
HIGH
Score source: CNA
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 - EPSS — exploit probability
- 1% percentile: 69 · as of 15 November 2026
- CWE
- CWE-22
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.