Gitea push mirror local path check uses the repository owner
The Gitea push mirror API checked whether the repository owner, instead of the requesting user, may use local file system paths. On instances with `[security] IMPORT_LOCAL_PATHS = true`, a repository administrator who is not allowed to import local paths could add a push mirror to a local path on the server when the repository owner has that permission. Gitea then pushed the repository's refs into an existing Git repository at that path with the permissions of the Gitea process.
- Products
- gitea
- Affected versions
- Not specified
- Fixed versions
- 28.1.0
- CVEs
- CVE-2026-86684
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 12:06 UTC · Revision 1
Source evidence
Gitea push mirror local path check uses the repository owner
core-osv · Original sourcePublished 14 Oct 2026, 08:43 UTC
The Gitea push mirror API checked whether the repository owner, instead of the requesting user, may use local file system paths. On instances with `[security] IMPORT_LOCAL_PATHS = true`, a repository administrator who is not allowed to import local paths could add a push mirror to a local path on the server when the repository owner has that permission. Gitea then pushed the repository's refs into an existing Git repository at that path with the permissions of the Gitea process.
osv:BIT-gitea-2026-86684
gitea
Fixed versions: 28.1.0
Complete source record
{
"id": "ff4f0ce9a0f4c64d2f00c8eada0fc461c969c8f45bfcc2e1a996611dfd8fb73d",
"url": "https://osv.dev/vulnerability/BIT-gitea-2026-86684",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Gitea push mirror local path check uses the repository owner",
"summary": "The Gitea push mirror API checked whether the repository owner, instead of the requesting user, may use local file system paths. On instances with `[security] IMPORT_LOCAL_PATHS = true`, a repository administrator who is not allowed to import local paths could add a push mirror to a local path on the server when the repository owner has that permission. Gitea then pushed the repository's refs into an existing Git repository at that path with the permissions of the Gitea process.",
"evidence": "osv:BIT-gitea-2026-86684",
"products": [
{
"name": {
"value": "gitea",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "28.1.0",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "BIT-gitea-2026-86684",
"aliases": [
"BIT-gitea-2026-86684",
"CVE-2026-86684",
"GHSA-7v5j-mph8-9w6g"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "1.18.0"
},
{
"fixed": "28.1.0"
}
]
}
],
"package": {
"name": "gitea",
"purl": "pkg:bitnami/gitea",
"ecosystem": "Bitnami"
},
"severity": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N"
}
],
"database_specific": {
"source": "https://github.com/bitnami/vulndb/tree/main/data/gitea/BIT-gitea-2026-86684.json"
}
}
],
"modified": "2026-10-14T11:11:00.632720973Z",
"provider": "osv",
"references": [
"https://blog.gitea.com/release-of-28.1.0/",
"https://github.com/go-gitea/gitea/pull/39501",
"https://github.com/go-gitea/gitea/pull/39507",
"https://github.com/go-gitea/gitea/releases/tag/v28.1.0",
"https://github.com/go-gitea/gitea/security/advisories/GHSA-7v5j-mph8-9w6g",
"https://nvd.nist.gov/vuln/detail/CVE-2026-86684"
],
"provider_metadata": {
"cpes": [
"cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:*"
],
"severity": "High"
}
},
"related_cves": [
{
"value": "CVE-2026-86684",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 316244,
"published_at": "2026-10-14T08:43:03.58+00:00"
}