Gogs user can update repository content with read-only permission
## Vulnerability Description The endpoint `PUT /repos/:owner/:repo/contents/*` does not require write permissions and allows access with **read permission only** via `repoAssignment()`. After passing the permission check, `PutContents()` invokes `UpdateRepoFile()`, which results in: * Commit creation * Execution of `git push` As a result, a token with **read-only permission** can be used to modify repository contents. --- ## Attack Prerequisites * Possession of a valid access token * Read permission on the target repository (public repository or collaborator with read access) --- ## Attack Scenario 1. The attacker accesses the target repository with a read-only token 2. The attacker sends a `PUT /contents` request to update an arbitrary file 3. The server creates a commit and performs a git push on behalf of the attacker --- ## Potential Impact * Source code tampering * Injection of backdoors * Compromise of release artifacts and distributed packages
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-23632US | —OT elevated | — | ||
Gogs is an open source self-hosted Git service. In version 0.13.3 and prior, the endpoint "PUT /repos/:owner/:repo/contents/*" does not require write permissions and allows access… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/gogs/gogsPACKAGE
- https://github.com/gogs/gogs/pull/8102/commits/b6afcdb2e8d291e2adaaf6a8b7f88d240606515dWEB
- https://github.com/gogs/gogs/releases/tag/v0.13.4WEB
- https://github.com/gogs/gogs/security/advisories/GHSA-5qhx-gwfj-6jqrWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-23632ADVISORY
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan