IT SBIT Services
Schneeberger
DEEN
CVE tracker

Gitea: Server-side request forgery and forced writes via push mirrors

CVE-2026-89430High 8.1

← All vulnerabilities

Summary

Gitea checks a push mirror's remote address against the [migrations] allow and block lists only when the mirror is created. Each sync later pushes to the stored address without this check, so a name that later resolves to a blocked or internal address is still contacted. An authenticated user with repository admin rights, which includes every user for repositories they create, can use this to force-push repository contents to internal Git services and delete refs there.

Affected

  • Gitea 0 to 1.27.3 (per GHSA-hcgw-r9gf-8mph; the CNA record lists the same range)

Fixed in

  • Gitea 28.0.0 or later

Workaround

  • Set [mirror] ENABLED=false until the update is applied. This stops all mirror updates, not only the malicious one.
  • Delete affected push mirrors until the update is applied.

Exploitation

  • CISA SSVC: Exploitation none, Automatable no.
  • No public exploit code found in the advisory or the sources reviewed. Not listed in CISA KEV.

Our recommendation

  • Upgrade Gitea to 28.0.0 or later.
  • Check whether open self-registration is enabled. If so, restrict it until the update is applied.
  • Review all existing push mirrors and their target addresses, and remove unknown or internal targets.
  • Monitor repository ref deletions and unexpected mirror sync errors.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 20:42.

Original description (NVD)

Gitea validated a push mirror's remote address against the `[migrations]` allow and block lists only when the mirror was created. Each synchronization passed the stored address directly to `git push`, so a name that later resolved to a blocked or internal address was still reached. A user with administrator access to a repository, which includes repositories they create themselves, could aim push mirror synchronization at internal Git services and force-push the repository's contents to them.

NVD references (5)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.