Tinyauth's OIDC authorization codes are not bound to client on token exchange
Tinyauth is an authentication and authorization server. Prior to 5.0.3, the OIDC token endpoint does not verify that the client exchanging an authorization code is the same client the code was issued to. A malicious OIDC client operator can exchange another client's authorization code using their own client credentials, obtaining tokens for users who never authorized their application. This violates RFC 6749 Section 4.1.3. This vulnerability is fixed in 5.0.3.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-32245
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 21:50 UTC · Revision 1
Source evidence
Tinyauth's OIDC authorization codes are not bound to client on token exchange
core-osv · Original sourcePublished 12 Mar 2026, 18:57 UTC
Tinyauth is an authentication and authorization server. Prior to 5.0.3, the OIDC token endpoint does not verify that the client exchanging an authorization code is the same client the code was issued to. A malicious OIDC client operator can exchange another client's authorization code using their own client credentials, obtaining tokens for users who never authorized their application. This violates RFC 6749 Section 4.1.3. This vulnerability is fixed in 5.0.3.
osv:CVE-2026-32245
Complete source record
{
"id": "d95f6e3415485b84d13452fe6ba48b7683dcad9ced0dbd3753550ec120e7c1b4",
"url": "https://osv.dev/vulnerability/CVE-2026-32245",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Tinyauth's OIDC authorization codes are not bound to client on token exchange",
"summary": "Tinyauth is an authentication and authorization server. Prior to 5.0.3, the OIDC token endpoint does not verify that the client exchanging an authorization code is the same client the code was issued to. A malicious OIDC client operator can exchange another client's authorization code using their own client credentials, obtaining tokens for users who never authorized their application. This violates RFC 6749 Section 4.1.3. This vulnerability is fixed in 5.0.3.",
"evidence": "osv:CVE-2026-32245",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-32245",
"aliases": [
"CVE-2026-32245",
"GHSA-xg2q-62g2-cvcm",
"GO-2026-4689"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/tinyauthapp/tinyauth",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "b2a1bfb1f532e87f205fa3afa3fc9f148c53ab89"
},
{
"fixed": "9eb2d33064b780fc24ac343101b50a69414fa7cb"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:tinyauth:tinyauth:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "5.0.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "b2a1bfb1f532e87f205fa3afa3fc9f148c53ab89"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "9eb2d33064b780fc24ac343101b50a69414fa7cb"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v5.0.3"
}
]
}
}
],
"versions": [
"v5.0.2-beta.2",
"v5.0.2",
"v5.0.2-beta.1",
"v5.0.1-rc.1",
"v5.0.1",
"v5.0.1-beta.1",
"v5.0.0-rc.2",
"v5.0.0",
"v5.0.0-rc.1",
"v5.0.0-beta.4",
"v5.0.0-beta.3",
"v5.0.0-beta.2",
"v5.0.0-beta.1",
"v5.0.0-alpha.5",
"v5.0.0-alpha.4",
"v5.0.0-alpha.3",
"v5.0.0-alpha.2",
"v5.0.0-alpha.1",
"v4.1.0",
"v4.1.0-rc.2",
"v4.1.0-rc.1",
"v4.1.0-beta.1",
"v4.0.1-beta.2",
"v4.0.1",
"v4.0.1-beta.1",
"v4.0.0",
"v4.0.0-rc.1",
"v4.0.0-beta.3",
"v4.0.0-beta.2",
"v4.0.0-beta.1",
"v4.0.0-alpha.2",
"v4.0.0-alpha.1",
"v3.6.2",
"v3.6.2-beta.4",
"v3.6.2-beta.3",
"v3.6.2-beta.2",
"v3.6.2-beta.1",
"v3.6.1",
"v3.6.1-beta.3",
"v3.6.1-beta.2",
"v3.6.1-beta.1",
"v3.6.0-beta.2",
"v3.6.0",
"v3.6.0-beta.1",
"v3.5.0",
"v3.5.0-alpha.2",
"v3.5.0-alpha.1",
"v3.4.1-beta.1",
"v3.4.1",
"v3.4.0",
"v3.4.0-beta.2",
"v3.4.0-beta.1",
"v3.4.0-alpha.1",
"v3.3.1-beta.1",
"v3.3.1",
"v3.3.0",
"v3.3.0-alpha.3",
"v3.3.0-alpha.2",
"v3.3.0-alpha.1",
"v3.2.1",
"v3.2.1-beta.1",
"v3.2.0-beta.6",
"v3.2.0",
"v3.2.0-beta.5",
"v3.2.0-beta.4",
"v3.2.0-beta.3",
"v3.2.0-beta.2",
"v3.2.0-beta.1",
"v3.2.0-alpha.1",
"v3.1.0",
"v3.1.0-beta.2",
"v3.1.0-beta.1",
"v3.1.0-alpha.1",
"v3.1.0-exp.3",
"v3.1.0-exp.2",
"v3.1.0-exp.1",
"v3.0.1-beta.1",
"v3.0.1",
"v3.0.0",
"v3.0.0-beta.2",
"v3.0.0-beta.1",
"v3.0.0-alpha.4",
"v3.0.0-alpha.3",
"v3.0.0-alpha.2",
"v3.0.0-alpha.1",
"v2.1.1-beta.1",
"v2.1.1",
"v2.1.0",
"v2.1.0-alpha.2",
"v2.1.0-alpha.1",
"v2.0.2-beta.2",
"v2.0.2",
"v2.0.2-beta.1",
"v2.0.1",
"v2.0.0",
"v2.0.0-beta.1",
"v2.0.0-alpha.1",
"v1.0.0",
"v1.0.0-beta.3",
"v1.0.0-beta.2",
"v1.0.0-beta.1",
"v1.0.0-alpha.1",
"v0.3.0",
"v0.3.0-beta.3",
"v0.3.0-beta.2",
"v0.3.0-beta.1",
"v0.2.0-beta.1",
"v0.2.0",
"v0.1.0",
"v0.1.0-beta.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-32245.json"
}
}
],
"modified": "2026-10-28T02:30:40.165296097Z",
"provider": "osv",
"references": [
"https://github.com/steveiliop56/tinyauth/releases/tag/v5.0.3",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32245.json",
"https://github.com/steveiliop56/tinyauth/security/advisories/GHSA-xg2q-62g2-cvcm",
"https://nvd.nist.gov/vuln/detail/CVE-2026-32245",
"https://github.com/steveiliop56/tinyauth/commit/b2a1bfb1f532e87f205fa3afa3fc9f148c53ab89"
],
"provider_metadata": {
"cwe_ids": [
"CWE-863"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32245.json"
}
},
"related_cves": [
{
"value": "CVE-2026-32245",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 507443,
"published_at": "2026-03-12T18:57:51.33+00:00"
}