CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-wrf9-r3h7-7x5v: Gitea: Fork Synchronization Continues After Parent Repository Changes from Public to Private

highCVSS 7.5CVE-2026-24451
Summary The POST /api/v1/repos/{owner}/{repo}/merge-upstream endpoint continues to synchronize commits from a parent repository after the parent repository has been changed from public to private. A fork created while the parent repository was public can still receive commits made after the parent repository becomes private. As a result, content added during the private period becomes available through the fork repository after synchronization. Details Gitea provides the merge-upstream API to synchronize a fork with its parent repository. A typical workflow is: 1. A repository is public. 2. Another user creates a fork. 3. The fork owner uses merge-upstream to receive updates from the parent repository. However, if the parent repository is later changed from public to private, the synchronization endpoint continues to import new commits from the parent repository into the fork. In testing on Gitea 1.26.2, a fork owner who can no longer directly access the parent repository is still able to synchronize newly created commits from the parent repository into the fork by calling merge-upstream. As a result, commits created after the visibility change can be propagated into the fork through the normal fork synchronization workflow. PoC Proof-of-Concept Code https://anonymous.4open.science/r/Gitea_PoC-EC93/4_poc_merge_upstream PoC Details 1. User alice creates a public repository alice/P. 2. User bob forks the repository, creating bob/P. 3. alice changes alice/P from public to private. 4. Verify that bob can no longer directly access the parent repository: GET /api/v1/repos/alice/P Response: 404 Not Found GET /api/v1/repos/alice/P/contents/README.md Response: 404 Not Found 5. While the repository is private, alice commits a new file: secret.txt 6. Verify that bob cannot directly access the new file from the parent repository: GET /api/v1/repos/alice/P/contents/secret.txt Response: 404 Not Found 7. bob synchronizes the fork: POST /api/v1/repos/bob

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
high — CVSS 7.5
Published
2026-07-21
Last updated
2026-07-21
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-wrf9-r3h7-7x5v

Exploitation outlook

EPSS (FIRST.org) estimates each CVE’s probability of exploitation in the next 30 days — here is the CSIRTS.com read on those numbers.

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-24451coverage & exploitation statusNVD · CVE.org

Same CVEs, other sources

How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.

More from GitHub Security Advisories