GHSA-5qhx-gwfj-6jqrMediumCVSS 6.5

Gogs user can update repository content with read-only permission

Published
February 6, 2026
Last Modified
February 6, 2026

🔗 CVE IDs covered (1)

📋 Description

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

🎯 Affected products1

  • go/gogs.io/gogs:<= 0.13.3

🔗 References (5)