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...
Vulnerability report
Unauthenticated Arbitrary File Read can lead to RCE
Go / gitea.dev
Decision summary
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
### 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
Exploitation evidence
Third-party attestation and first-party sensor observation are shown separately so teams can judge the evidence chain.
Previdian
Previdian independently recorded this as exploited after first seeing it in honeypot sensors.
Previdian sensor
Previdian first observed exploitation attempts targeting this vulnerability in our honeypot sensors.
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
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
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.
Detection
Make the evidence actionable in scanner, SOC, and edge-control workflows.
Request targets and User-Agents available in Pro. Callback host details available in Enterprise.
No scanner integrations recorded yet.
No Previdian virtual patch is currently available. Future rules ship for ModSecurity, Cloudflare, and AWS WAF.
Learn about virtual patches →Risk and context
CVSS v3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS
—
Timeline
High-confidence, third-party attested exploitation
Evidence-backed exploitation signal
Pro API
Confidence, exploit status, sensor telemetry, PoCs, scanner integrations, mentions, and tags are available programmatically for VM, SOC, and CTI workflows.
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 }
}