Vulnerability report

Active exploitation observed High confidence Not in CISA KEV

GHSA-6V53-HR58-556R

Unauthenticated Arbitrary File Read can lead to RCE

Go / gitea.dev

Severity
CVSS 9.8 · Critical
Confidence
High
Exploit status
Observed in sensors
EPSS
First observed
07 Sep 2026
Last observed
09 Sep 2026

Decision summary

What security teams need to know first

Direct answers before the deeper technical record.

What it is

GHSA-6V53-HR58-556R is an unauthenticated Unauthenticated Arbitrary File Read can lead to RCE affecting Go gitea.dev. ### Summary An unauthenticated remote attacker can submit Org-mode markup containing a #+INCLUDE...

Is it exploited?

Yes. Previdian sensors observed exploitation attempts with high confidence.

Who is affected?

Go / gitea.dev.

What should we do?

Patch immediately, validate internet-facing exposure, and monitor for matching requests.

Overview

Unauthenticated Arbitrary File Read can lead to RCE

### Summary An unauthenticated remote attacker can submit Org-mode markup containing a #+INCLUDE directive to POST /{owner}/{repo}/markup for any suitable public repository to read arbitrary server files. By extracting INTERNAL_TOKEN from app.ini, they can inject a Git hook through the internal logger and achieve command execution as the Gitea OS user during an anonymous clone.

### Details Gitea registers `POST /{username}/{reponame}/markup` with optional sign-in, repository assignment, and a repository-unit reader check. An anonymous user passes that check for a public repository with a normal readable code unit. The handler passes the supplied `Mode`, `Text`, and `FilePath` into Gitea's generic markup renderer. Selecting `Mode: file` and a `.org` filename chooses the Org-mode renderer.

Gitea 1.27.0 initializes `go-org` using `org.New()` and does not replace its default `ReadFile` callback. In `go-org` 1.9.1, that callback is `ioutil.ReadFile`; `#+INCLUDE` accepts absolute paths and passes them directly to that callback.

#### Preconditions

- At least one repository is publicly readable and exposes a unit accepted by the repository markup route. A normal public repository with its code unit enabled satisfies this condition. - Standard Gitea storage permissions allow the service user to update Gitea's managed global Git configuration.

### Impact - Read arbitrary files accessible to the Gitea service user without an account. - Submit the file-read payload directly through a public repository's web markup route without committing a file or obtaining repository write access. - Expose Gitea configuration, internal bearer tokens, OAuth/JWT material, and deployment metadata

### Affected - The vulnerable version seem v1.22.1 ~ v1.27.0

### Credit

Found by @xbow-security. Triaged by Guido Leo <[email protected]>.

Independently reported by https://github.com/NightRang3r

Ecosystem Package Affected
Go gitea.dev 1.22 < 1.27.1 · patched 1.27.1
Published
Exploitation Reported
07 Sep 2026
Attack vector
Remote
Complexity
Low
Privileges
None
User interaction
None

Exploitation evidence

Why Previdian marks this advisory as exploited

Third-party attestation and first-party sensor observation are shown separately so teams can judge the evidence chain.

Exploited in the wild

Previdian

Recorded 07 Sep 2026

Previdian independently recorded this as exploited after first seeing it in honeypot sensors.

Active exploitation observed

Previdian sensor

First observed 07 Sep 2026

Previdian first observed exploitation attempts targeting this vulnerability in our honeypot sensors.

Known exploited vulnerability sources

Per-source evidence links for KEV attestations are available through the Previdian Pro API.

Learn about Pro API access
Source Added
Previdian First 2026-09-08 07:53 UTC

Sensor telemetry

First-party evidence of exploitation activity

Previdian sensors recorded exploitation attempts targeting this vulnerability. The cards and chart show volume, unique attackers, and daily activity.

34

Attempts observed

1

Unique attacker IPs

1

Attacker countries

ER

2

Sensors observed

GHSA-6V53-HR58-556R exploitation attempts over the last 7 days

Daily events observed by Previdian sensors

Updated 11 Sep 2026

0
0
25
0
9
0
0
5 Sep 6 Sep 7 Sep 8 Sep 9 Sep 10 Sep 11 Sep

First observed 07 Sep 2026 · Last observed 09 Sep 2026

Pro adds sensor region and window summaries. Enterprise adds raw IPs, paths, User-Agents, and payloads.

Request telemetry access

Detection

Operational artifacts and observed signals

Make the evidence actionable in scanner, SOC, and edge-control workflows.

Observed signals

Request targets
User-Agents
Callback hosts
5
1
0

Request targets and User-Agents available in Pro. Callback host details available in Enterprise.

Scanner coverage

No scanner integrations recorded yet.

Virtual patch status

No Previdian virtual patch is currently available. Future rules ship for ModSecurity, Cloudflare, and AWS WAF.

Learn about virtual patches →

Risk and context

Severity, weaknesses, and research context

CVSS v3.1

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

EPSS

Timeline

From disclosure to observed exploitation

  1. Added to Previdian KEV Feed

    High-confidence, third-party attested exploitation

  2. Observed by Previdian sensors

    Evidence-backed exploitation signal

Pro API

Automate this intelligence

Confidence, exploit status, sensor telemetry, PoCs, scanner integrations, mentions, and tags are available programmatically for VM, SOC, and CTI workflows.

  • Evidence confidence and provenance
  • First-party sensor telemetry
  • PoC and scanner references
  • Affected versions and enrichment
  • Automation-ready JSON delivery

GET /api/v2/pro/kevs/GHSA-6V53-HR58-556R

Free JSON includes basic KEV fields
{
  "ghsa_id": "GHSA-6V53-HR58-556R",
  "confidence": "High",
  "cvss_score": 9.8,
  "cvss_estimated": false,
  "epss_score": null,
  "exploit_status": {
    "exploited_in_the_wild": true,
    "active_exploitation_observed": true
  },
  "sensor_telemetry": { "attempts": 34, "sensors": 2 }
}