Skip to content
Heist/ feed
Back to feed
Medium

Tinyauth's OIDC authorization codes are not bound to client on token exchange

Type: advisorySources: OSV

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 source

Published 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"
}