CVE Tools

CVE-2026-20896

Gitea Docker image trusts spoofable reverse-proxy headers by default

No known exploitation. EPSS puts it in the 86th percentile. No fix published yet.

Published Updated Sources: CVE.org, NVD

What to do

No fixed build or workaround is published yet. Limit exposure and watch for a patch.

Steps

Written by AI from the record
  1. Check whether your Gitea Docker setup has reverse-proxy authentication enabled (for example, it relies on headers like X-WEBAUTH-USER) and whether the container trusts all proxy IPs (REVERSE_PROXY_TRUSTED_PROXIES=*).
  2. If both are enabled, immediately change the configuration so Gitea trusts ONLY your actual reverse proxy’s IP(s) or hostname—not “all IP addresses.”
  3. Upgrade the Gitea Docker image to a release that includes the fix referenced in go-gitea/gitea pull/38151 (use the exact fixed tag/version shown on the Gitea vendor release page).
  4. If you can’t upgrade right away, temporarily disable the reverse-proxy login headers (or ensure those headers are stripped at the reverse proxy) until you apply the fix.

What it is

From the CVE record

Gitea Docker image versions up to and including 1.26.2 use REVERSE_PROXY_TRUSTED_PROXIES=* by default, allowing any source IP to impersonate a user when reverse-proxy authentication headers such as X-WEBAUTH-USER are enabled.

In plain language

Written by AI from the record

If you run Gitea in Docker behind a reverse proxy with reverse-proxy login headers enabled, a remote attacker can impersonate users by spoofing those headers—this is a serious, actively probed risk.

CVE-2026-20896 is a header-trust issue in the Gitea Docker image: it defaults to trusting spoofable reverse-proxy headers (via REVERSE_PROXY_TRUSTED_PROXIES=*), enabling unauthenticated attackers to impersonate users when reverse-proxy authentication headers (e.g., X-WEBAUTH-USER) are enabled.

If you're affected

  • Account takeover without login
  • Privileged access escalation
  • Repository tampering risk
  • Service disruption from compromise

Exploitation

Where each signal puts this CVE on the scale from published to confirmed exploited.

EPSS86th
CISA KEV

Not in the catalog. CISA has not confirmed exploitation.

Public exploits

No public exploit or proof of concept found in the sources we track.

EPSS

2.8% chance of exploitation activity in the next 30 days, which ranks it in the 86th percentile of scored CVEs.

Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.

Lifecycle

15 events over 52 days, from the signal feeds we watch.

  1. EPSS band changehigh → 0epss band change
  2. EPSS band changemoderate → highepss band change
  3. Nuclei check added
  4. EPSS band changelow → moderate
  5. EPSS band change0 → moderateepss band change
  6. OpenVAS check added

Affected products

Technical detail

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Scored 9.8 by NVD.

How it is reached

  • Attack Vector NetworkExploitable remotely over the network without any special conditions
  • Attack Complexity LowNo special conditions — the attack can be reliably reproduced
  • Privileges Required NoneNo authentication required — anyone can exploit this
  • User Interaction NoneNo user interaction needed — fully automated exploitation

Scope

  • Scope UnchangedImpact is limited to the vulnerable component itself

Impact if exploited

  • Confidentiality HighTotal information disclosure — all data in the component is compromised
  • Integrity HighTotal loss of integrity — attacker can modify any data in the component
  • Availability HighTotal denial of service — the component is completely unavailable

Weaknesses

Sources

Watch the software you run.

My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.

We'll flag the next CVE, public exploit or patch for Gitea, not every advisory.

We use analytics cookies to see which pages and articles actually help people. Decline and none of them run — the site works the same. What we store