HIGH 7.5

CVE-2026-24451: Gitea Fork Sync Bypasses Private Repository Access Controls

Gitea 1.26.2 has a flaw in how it handles repository access control when a parent repository transitions from public to private. If a user has forked a public repository, they can continue to sync updates from the parent even after the parent becomes private—a synchronization that should be blocked. This allows fork owners to access data they no longer have authorization to see, turning a change in access policy into a data exposure window.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weaknesses (CWE)
CWE-200, CWE-284
Affected products
0 configuration(s)
Published / Modified
2026-07-03 / 2026-07-07

NVD description (verbatim)

Gitea 1.26.2 allows fork synchronization to continue after a parent repository changes from public to private, exposing data to a fork that should no longer be authorized.

5 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from insufficient access control enforcement in Gitea's fork synchronization mechanism. When a parent repository changes visibility from public to private, the synchronization process does not re-validate the fork owner's access rights before allowing pull operations. An authenticated fork owner can continue calling sync endpoints and retrieve updates from a now-private parent repository. The issue maps to CWE-200 (Information Exposure) and CWE-284 (Improper Access Control), reflecting both the data exposure outcome and the underlying authorization gap.

Business impact

For organizations using Gitea to host sensitive repositories, this vulnerability creates an uncontrolled data leakage risk during common operational changes. If a repository is made private to restrict access—whether due to licensing changes, security incidents, or project confidentiality—any user who previously forked it can continue extracting updates, defeating the access restriction. This is particularly risky in development environments handling proprietary code, compliance-restricted content, or credentials that may exist in commit history. The exposure window lasts until administrators discover the sync activity or the fork is explicitly deleted.

Affected systems

Gitea version 1.26.2 is confirmed affected. Users running this version with public repositories that may later be made private, or who have untrusted forkers, face direct risk. The vulnerability does not appear in the provided data to extend to other Gitea versions, though administrators should verify patch status for their deployed version against the official Gitea security advisory.

Exploitability

Exploitation requires an existing fork and basic familiarity with Gitea's sync interface—no special privileges, network positioning, or user interaction are needed. An attacker with a fork of a formerly public repository simply continues normal sync operations, which now grant unauthorized access. The CVSS score of 7.5 (High) reflects the network-accessible, low-complexity, unauthenticated-in-principle nature of the exposure (though the attacker must already be a registered fork owner). This is a passive continuation of an existing operation, making it unlikely to trigger alerts unless sync logs are actively monitored.

Remediation

Immediately patch Gitea to a version that enforces access control checks on fork synchronization operations. The fix should validate that the fork owner still has authorization to access the parent repository before processing any sync request. Organizations unable to patch immediately should consider temporarily disabling fork functionality, restricting repository visibility changes to off-hours when sync activity can be monitored, or explicitly deleting forks when a repository becomes private.

Patch guidance

Apply the latest security update from the Gitea project. Verify against the official Gitea security advisory that your target version includes the fix for CVE-2026-24451. Test the patch in a staging environment to confirm fork synchronization now properly rejects requests when the parent repository is private. After patching, audit recent repository visibility changes and review access logs for any suspicious sync activity on now-private repositories.

Detection guidance

Monitor Gitea's repository sync and API logs for fork synchronization requests targeting private repositories. Look for patterns where a fork owner attempts to sync from a parent that changed visibility within a time window. Check for unexpected pull operations or clone activity from accounts associated with old forks. Enable audit logging on repository visibility transitions and correlate them with subsequent API calls from fork-related accounts. Consider implementing alerts on repository visibility changes followed by sync activity from unrelated accounts.

Why prioritize this

Assign this vulnerability high priority due to the direct exposure of confidential repository data, the ease of exploitation once a fork exists, and the common organizational practice of making repositories private after initial public collaboration phases. The attack surface includes any Gitea instance where external users can fork public repositories. Unlike many vulnerabilities, this one specifically targets intentional access control changes, making it particularly dangerous in environments transitioning projects between public and private phases.

Risk score, explained

The CVSS 3.1 score of 7.5 reflects a High severity vulnerability. The vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N indicates network accessibility, low attack complexity, no privileges required, no user interaction, and high confidentiality impact with no integrity or availability effects. The score appropriately captures the confidentiality breach while acknowledging that data is read-only (not modified or deleted). In practice, organizations with external users or untrusted collaborators should treat this as critical.

Frequently asked questions

Can an attacker create a fork and immediately exploit this, or must they wait for a visibility change?

They must wait. The vulnerability activates only after a repository transitions from public to private. The fork owner's sync access is initially legitimate when the parent is public. The exposure window opens when visibility changes.

Does this affect repositories that were always private?

No. The vulnerability specifically requires a parent repository that changes from public to private. Repositories created as private do not trigger this behavior, as there is no prior fork under a public state.

If we delete a fork, does that stop the exposure?

Yes. Deleting the fork removes the offending copy and stops further sync operations. However, any data already synced to the fork before deletion remains in that fork's history.

How can we find out if our Gitea instance was exploited?

Review repository visibility change logs and cross-reference them with sync activity in the same timeframe. Check for pulls or clones from accounts that forked repositories shortly before they were made private. Enable detailed audit logging going forward to catch future attempts.

This analysis is based on the CVE record and does not constitute professional security advice. Organizations should verify all patch versions and affected software versions against official vendor advisories before taking remediation action. The vulnerability details, exploitability, and impact assessments reflect current understanding and may evolve as additional information becomes available. Test all patches in non-production environments before deployment. For specific guidance on your infrastructure, consult with your security team or a qualified cybersecurity professional. Source: NVD (public-domain), retrieved 2026-08-12. Analysis generated by SEC.co (claude-haiku-4-5).