Gogs user can update repository content with read-only permission
Date: 2026-02
Affected: go/gogs.io/gogs
Attack vector: model-poisoning
Category: vulnerability-disclosure
Severity: Medium
CVE: CVE-2026-23632
CWE: CWE-862
CWE-863
CVSS: 6.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N)

## 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


Mitigations:

Architectural layers (MAESTRO):