CVE-2026-78231: 
Gitea vulnerability analysis and mitigation

Overview

CVE-2026-78231 is an unauthenticated blind Server-Side Request Forgery (SSRF) vulnerability in Gitea affecting all versions up to and including 1.26.4. When OpenID sign-in is enabled, an unauthenticated attacker can manipulate the OpenID verification flow to cause the Gitea server to send outbound HTTP POST requests to attacker-controlled URLs, enabling interaction with internal network services. The vulnerability was published on September 23, 2026, and patched in version 1.27.0. It carries a CVSS v3.1 base score of 5.3 (Moderate) (GitHub Advisory).

Technical details

The root cause is improper trust of caller-supplied OpenID assertion parameters without sufficient validation of the destination endpoint (CWE-918). The vulnerable route is /user/login/openid, which is gated only by the openIDSignInEnabled configuration flag and does not require an authenticated session. When an unauthenticated attacker sends a crafted GET request to this endpoint with a malicious openid.op_endpoint parameter, the upstream github.com/yohcop/openid-go library issues a server-side HTTP POST request to the attacker-specified URL using http.DefaultClient — with no apparent request timeout, introducing an additional availability risk. The attacker controls both the destination URL and much of the form-encoded POST body via supplied OpenID query parameters (GitHub Advisory).

Impact

Because the response is not returned to the attacker, the SSRF is blind; however, it can still be used to trigger state-changing POST requests against internal services unreachable from the public internet, such as loopback services, internal admin panels, CI/CD endpoints, private-network APIs, and cloud metadata endpoints (e.g., 169.254.169.254). The primary confidentiality impact is low (internal network probing), integrity impact is limited to side effects on services accepting unauthenticated POST requests, and availability may be degraded if the Gitea server is directed to make requests to slow or non-responsive targets due to the lack of a timeout. The actual severity is highly environment-dependent and may be significantly higher in deployments where Gitea can reach sensitive unauthenticated internal services (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the time of disclosure. The EPSS score is 0.0 and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation requires only that OpenID sign-in ([openid] ENABLE_OPENID_SIGNIN = true) be enabled on the target instance, with no authentication or user interaction needed, making the attack surface relatively broad for self-hosted Gitea deployments that use this feature (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify Gitea instances (e.g., via Shodan, Censys, or direct browsing) running version 1.26.4 or earlier. Confirm that OpenID sign-in is enabled by checking whether /user/login/openid returns a valid response rather than a 404 or disabled-feature error.
  2. Craft malicious request: Prepare a GET request to /user/login/openid with attacker-controlled OpenID parameters, setting openid.op_endpoint to the target internal URL (e.g., http://169.254.169.254/latest/meta-data/ or http://internal-admin-panel/api/action) and populating other OpenID query parameters to control the POST body.
  3. Trigger SSRF: Send the crafted GET request to the Gitea server. The github.com/yohcop/openid-go library will issue a server-side HTTP POST to the attacker-specified endpoint using http.DefaultClient.
  4. Interact with internal services: Repeat with different target URLs to probe internal network topology, trigger state-changing actions on services accepting unauthenticated POST requests, or attempt to retrieve cloud instance metadata. Note that responses are not returned to the attacker (blind SSRF), so out-of-band techniques (e.g., DNS callbacks, timing analysis) may be needed to confirm reachability (GitHub Advisory).

Indicators of compromise

  • Network: Unusual outbound HTTP POST requests originating from the Gitea server process to internal IP ranges (RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.1), or link-local addresses (169.254.0.0/16); outbound requests to unexpected external hosts from the Gitea process.
  • Logs: Gitea access logs showing repeated unauthenticated GET requests to /user/login/openid with unusual or external openid.op_endpoint parameter values; HTTP client errors or timeouts logged by the openid-go library.
  • Process: The Gitea server process initiating outbound TCP connections to ports 80/443 on internal hosts not normally contacted by the application.
  • Application Logs: Errors or unexpected responses in Gitea logs related to OpenID verification failures against non-standard provider endpoints (GitHub Advisory).

Mitigation and workarounds

Upgrade Gitea to version 1.27.0 or later, which contains the patch for this vulnerability. As an immediate workaround for deployments that cannot upgrade, disable OpenID sign-in by setting ENABLE_OPENID_SIGNIN = false in the [openid] section of the Gitea configuration file. Additionally, network-level controls such as egress firewall rules restricting the Gitea server's outbound HTTP access to internal IP ranges can reduce the exploitability and impact of this vulnerability in the interim (GitHub Advisory).

Community reactions

The vulnerability was reported by security researcher alimezar and remediated by Gitea maintainer bircni, who published the advisory on September 23, 2026. No significant broader media coverage or notable public researcher commentary beyond the official advisory has been identified at this time (GitHub Advisory).

Additional resources


Source: This report was generated using AI

Related Gitea vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-73802CRITICAL9.9
  • Gitea logoGitea
  • gitea-fips
NoYesOct 14, 2026
CVE-2026-78231MEDIUM5.3
  • Gitea logoGitea
  • gitea
NoYesOct 14, 2026
CVE-2026-78433NONEN/A
  • Gitea logoGitea
  • gitea
NoYesOct 14, 2026
CVE-2026-73814NONEN/A
  • Gitea logoGitea
  • gitea
NoYesOct 14, 2026
CVE-2026-73804NONEN/A
  • Gitea logoGitea
  • cpe:2.3:a:gitea:gitea
NoYesOct 14, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management