{"id":"CVE-2026-101023","state":"PUBLISHED","title":"Gitea OAuth2 refresh token grant accepts access tokens","description":"Gitea's OAuth2 token endpoint verified the signature and grant of a token submitted with the `refresh_token` grant type, but not that the token was a refresh token. An unexpired access token for the same OAuth2 application and grant could be exchanged for a new access token and refresh token. Whoever holds such an access token could keep access beyond the token's original lifetime.","publishedAt":"2026-10-06T21:34:53.642Z","updatedAt":"2026-10-07T20:04:04.946Z","severity":{"score":9.1,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","source":"CISA-ADP"},"assigner":"Gitea","products":["Gitea Gitea"],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"28.0.0","versionType":"semver"}]}],"references":["https://github.com/go-gitea/gitea/security/advisories/GHSA-469m-x4mw-38r3","https://github.com/go-gitea/gitea/pull/39501","https://github.com/go-gitea/gitea/pull/39507","https://blog.gitea.com/release-of-28.1.0/","https://github.com/go-gitea/gitea/releases/tag/v28.1.0"],"weaknesses":["CWE-287"],"ingestedAt":"2026-10-29T20:10:13.529Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/101xxx/CVE-2026-101023.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-101023","state":"PUBLISHED","datePublished":"2026-10-06T21:34:53.642Z","dateUpdated":"2026-10-07T20:04:04.946Z","assignerShortName":"Gitea","assignerOrgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateReserved":"2026-10-04T22:02:04.874Z"},"containers":{"cna":{"title":"Gitea OAuth2 refresh token grant accepts access tokens","descriptions":[{"lang":"en","value":"Gitea's OAuth2 token endpoint verified the signature and grant of a token submitted with the `refresh_token` grant type, but not that the token was a refresh token. An unexpired access token for the same OAuth2 application and grant could be exchanged for a new access token and refresh token. Whoever holds such an access token could keep access beyond the token's original lifetime."}],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"28.0.0","versionType":"semver"}]}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-469m-x4mw-38r3","name":"GitHub Security Advisory GHSA-469m-x4mw-38r3","tags":["vendor-advisory"]},{"url":"https://github.com/go-gitea/gitea/pull/39501","name":"Fix: go-gitea/gitea pull request #39501","tags":["patch"]},{"url":"https://github.com/go-gitea/gitea/pull/39507","name":"Fix backport to release/v28: go-gitea/gitea pull request #39507","tags":["patch"]},{"url":"https://blog.gitea.com/release-of-28.1.0/","name":"Gitea 28.1.0 release announcement","tags":["release-notes"]},{"url":"https://github.com/go-gitea/gitea/releases/tag/v28.1.0","name":"go-gitea/gitea v28.1.0 release","tags":["release-notes"]}],"providerMetadata":{"shortName":"Gitea","orgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateUpdated":"2026-10-06T21:34:53.642Z"},"credits":[{"lang":"en","value":"https://github.com/rezmoss","type":"reporter"},{"lang":"en","value":"https://github.com/manus-use","type":"reporter"},{"lang":"en","value":"https://github.com/danieltk76","type":"reporter"},{"lang":"en","value":"https://github.com/gigioneggiando","type":"reporter"},{"lang":"en","value":"https://github.com/DshtAnger","type":"reporter"},{"lang":"en","value":"https://github.com/manus-pi","type":"reporter"},{"lang":"en","value":"https://github.com/silverwind","type":"remediation developer"},{"lang":"en","value":"https://github.com/bircni","type":"remediation developer"}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":9.1,"attackVector":"NETWORK","baseSeverity":"CRITICAL","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"NONE","privilegesRequired":"NONE","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-10-07T20:03:22.628993Z","id":"CVE-2026-101023","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-287","type":"CWE","lang":"en","description":"CWE-287 Improper Authentication"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-07T20:04:04.946Z"}}]}}}