Read the docs
TI-2026-83596 Aliases CVE-2026-116474

Gitea Actions job token spoofs instance-signed commits

Priority LOW 28CWE-347Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Security bypass
Confidentiality · integrity · availability
None · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-347.

Summary

Gitea versions from 1.19.0 before 28.3.0 are affected. A Gitea Actions job token acts as the gitea-actions system user, which the user API accepted, so a job could add a GPG key to that user (CWE-347). Commit verification then treats the unowned key as the instance signing key, so any user who can run a workflow job can make their own commits show as trusted and signed by the instance, including in pull requests to repositories they cannot write to. Only the displayed signature status is affected, and no access is gained.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

The `GITEA_TOKEN` of a Gitea Actions job authenticates as the `gitea-actions` system user, and the `/api/v1/user` email and GPG key endpoints accepted that user, so a job could register an email address and a GPG key on it; without required email confirmation (the default) the address is stored as activated. Commit verification treats a key without a real owner as the instance signing key, so any user who can run a workflow job could make commits signed with their own key show as trusted and signed by the instance in every repository where they appear, including pull requests to repositories the user cannot write to. The impact is limited to the displayed signature status: enforcement such as required signed commits only checks that a signature is verified and is unaffected, and no access is gained. The `/api/v1/user` routes now reject system users.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00166 5th percentileScored 2026-11-07
Fix Fixed Gitea (Gitea): 28.3.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
GiteaGitea1.19.0 to before 28.3.028.3.0Patch availableCNA
  • Gitea VendorGitea Affected 1.19.0 to before 28.3.0 Fixed in 28.3.0 Patch available CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:*——Gitea
  • cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:* Versions — — ·Gitea

Remediation

Upgrade Gitea to version 28.3.0 or later.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA Gitea (Gitea) Fixed in 28.3.0

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    Gitea 28.3.0

    20 records Highest priority Priority MEDIUM 3 MEDIUM, 17 LOW

    Other records, highest priority first

    • TI-2026-83610 Gitea OAuth2 auto-linking lets attackers take over accountsPriority MEDIUM 49
    • TI-2026-83601 Gitea public-only token can expose private OCI blobs through package mountsPriority MEDIUM 47
    • TI-2026-83594 Gitea public-only token bypass exposes private repository jobsPriority MEDIUM 47

Timeline

  1. 2026-11-01 Threatist record created from CVE-2026-116474
  2. 2026-11-06 CVSS score added · CISA ADP
  3. 2026-11-06 CISA SSVC decision points changed

References

  • TI-2026-42785 Gitea before 1.27.1 allows remote code execution via the diffpatch API through Git hook installation. KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-42033 Improper authorization on OAuth sign-in callback silently re-enables administrator-disabled accounts CVSS 3.1CRITICAL 9.8
  • TI-2026-40842 Privilege Escalation via Access Token Scope Escalation in API CVSS 3.1CRITICAL 9.8
  • TI-2026-16922 Gitea Docker image trusts spoofable reverse-proxy headers by default CVSS 3.1CRITICAL 9.8
  • TI-2026-42043 Team-repository linking endpoint bypasses the RepoAdminChangeTeamAccess organization setting CVSS 3.1CRITICAL 9.1
  • TI-2026-40381 OIDC userinfo Endpoint Returns Identity Claims Without Enforcing API Token Scopes CVSS 3.1CRITICAL 9.1
See all 240 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences