CVE-2026-59774 is a critical arbitrary file-read vulnerability in the markup rendering functionality of Gitea and Forgejo. The flaw is triggered through the Org-mode renderer used by the markup endpoint for repository content rendering. Affected implementations initialize the go-org library without overriding its default ReadFile callback, allowing Org-mode #+INCLUDE directives to resolve and read absolute paths from the server filesystem. As a result, an attacker can submit crafted Org-mode markup to the repository markup rendering endpoint and cause the application to include the contents of local files in the rendered response. Reported affected versions include Gitea 1.22.1 through 1.27.0, fixed in 1.27.1, and Forgejo 7.0 through 15.0.5 and 16.0.0 through 16.0.1, fixed in 15.0.6 and 16.0.2.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
This repository is a minimal PoC environment for CVE-2026-59774 against Gitea. It contains only two files: a README with exploitation steps and a docker-compose.yml that launches Gitea 1.27.0 backed by sqlite3. There is no standalone exploit program; the exploit is performed manually with curl requests against Gitea's web endpoint. The core capability demonstrated is arbitrary local file read through the POST /{user}/{repo}/markup endpoint when Org-mode content is rendered. The supplied JSON body sets Mode=file, FilePath=poc.org, and injects an Org include directive in Text such as #+INCLUDE: "/etc/passwd" src 123. The README explains that the payload must match go-org's includeFileRegexp, so a bare include line without the required kind/lang suffix will not work. The repository also documents a likely privilege-escalation/follow-on path: first read /proc/self/environ to recover GITEA_CUSTOM, then read {GITEA_CUSTOM}/conf/app.ini (shown concretely as /data/gitea/conf/app.ini in the Docker setup) to obtain INTERNAL_TOKEN. While the repo does not include code that uses the token for command execution, it clearly goes beyond simple detection and provides actionable exploitation steps for sensitive file disclosure and credential/token harvesting. Structurally, this is a lightweight reproduction lab rather than a weaponized exploit. docker-compose.yml exposes Gitea on port 3000 and mounts ./gitea to /data, while the README walks the operator through initialization, repository creation, file-read PoC, and the parser details in upstream go-org 1.9.1 that constrain payload syntax.
20 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
An arbitrary file read vulnerability in Forgejo's markup rendering API caused by unsafe handling of org-mode #+INCLUDE directives through the go-org library default ReadFile callback, allowing authenticated attackers to read arbitrary files from the server filesystem.
A critical unauthenticated arbitrary file read vulnerability in Gitea's markup rendering functionality that can be triggered via the public repository markup endpoint to include and disclose local files such as /etc/passwd.
A critical unauthenticated arbitrary file-read vulnerability in Gitea's Org-mode markup rendering endpoint that can expose files readable by the Gitea service account and may enable command execution through a token-and-hook attack chain.
The content only references CVE-2026-59774 in the context of adding a template, without describing the vulnerability, affected product, impact, or technical details.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.