CVE-2026-52811

Source
https://cve.org/CVERecord?id=CVE-2026-52811
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52811.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-52811
Aliases
Published
2026-06-24T20:31:38.233Z
Modified
2026-07-15T01:49:04.850215794Z
Severity
  • 9.0 (Critical) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H CVSS Calculator
Summary
Gogs: UploadRepoFiles writes outside repo working tree via committed parent sym
Details

Gogs is an open source self-hosted Git service. Prior to 0.14.3, (*Repository).UploadRepoFiles checks for symlinks only on the leaf of the upload target (osx.IsSymlink(targetPath)). The siblings UpdateRepoFile, DeleteRepoFile, and GetDiffPreview use hasSymlinkInPath, which lstats every component — UploadRepoFiles is the lone outlier. An attacker with repo-write access plus a multipart upload whose filename contains a literal backslash (preserved by filepath.Base on Linux, then converted to / by pathx.Clean) redirects the write through a previously-committed directory symlink. iox.CopyFile opens the destination with os.Create (no ONOFOLLOW), so the kernel follows the parent symlink and writes attacker bytes anywhere the gogs UID can write — ~git/.ssh/authorizedkeys → SSH foothold, or <repo>.git/hooks/post-receive → next-push RCE. This vulnerability is fixed in 0.14.3.

Database specific
{
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
        "CWE-22",
        "CWE-59",
        "CWE-61"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52811.json"
}
References

Affected packages

Git / github.com/gogs/gogs

Affected ranges

Type
GIT
Repo
https://github.com/gogs/gogs
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Database specific
{
    "source": [
        "AFFECTED_FIELD",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "0"
        },
        {
            "fixed": "0.14.3"
        }
    ]
}

Affected versions

Other
latest-commit-build
v0.*
v0.10
v0.10.18
v0.10.8
v0.10rc
v0.11
v0.11.19
v0.11.29
v0.11.33
v0.11.34
v0.11.4
v0.11.43
v0.11.53
v0.11.66
v0.11.79
v0.11.86
v0.11.91
v0.11rc
v0.14.0
v0.14.0-rc.1
v0.14.1
v0.14.1-rc.1
v0.14.2
v0.14.2-rc.1
v0.2.0
v0.3.0
v0.3.1
v0.4.0
v0.4.1
v0.4.2
v0.5.0
v0.5.11
v0.5.13
v0.5.2
v0.5.5
v0.5.8
v0.5.9
v0.6.1
v0.6.15
v0.6.3
v0.6.9
v0.7.0
v0.7.19
v0.7.22
v0.7.33
v0.7.6
v0.8.0
v0.8.10
v0.8.25
v0.8.43
v0.9.0
v0.9.113
v0.9.128
v0.9.13
v0.9.141
v0.9.46
v0.9.48
v0.9.60
v0.9.71
v0.9.97

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52811.json"