Skip to content
Heist/ feed
Back to feed
High

JWT algorithm confusion in Hono JWK Auth Middleware when JWK lacks "alg" (untrusted header.alg fallback)

Type: advisorySources: OSV

Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.11.4, there is a flaw in Hono’s JWK/JWKS JWT verification middleware allowed the algorithm specified in the JWT header to influence signature verification when the selected JWK did not explicitly define an algorithm. This could enable JWT algorithm confusion and, in certain configurations, allow forged tokens to be accepted. The JWK/JWKS JWT verification middleware has been updated to require an explicit allowlist of asymmetric algorithms when verifying tokens. The middleware no longer derives the verification algorithm from untrusted JWT header values. This vulnerability is fixed in 4.11.4.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-22818
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 02:21 UTC · Revision 1

Source evidence

JWT algorithm confusion in Hono JWK Auth Middleware when JWK lacks "alg" (untrusted header.alg fallback)

core-osv · Original source

Published 13 Jan 2026, 19:49 UTC

Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.11.4, there is a flaw in Hono’s JWK/JWKS JWT verification middleware allowed the algorithm specified in the JWT header to influence signature verification when the selected JWK did not explicitly define an algorithm. This could enable JWT algorithm confusion and, in certain configurations, allow forged tokens to be accepted. The JWK/JWKS JWT verification middleware has been updated to require an explicit allowlist of asymmetric algorithms when verifying tokens. The middleware no longer derives the verification algorithm from untrusted JWT header values. This vulnerability is fixed in 4.11.4.

osv:CVE-2026-22818
Complete source record
{
  "id": "f668d6d63e18eb5b895b3848fa5a16ed2ae7ccd2c6ef86fc2c70952cdbb9ac89",
  "url": "https://osv.dev/vulnerability/CVE-2026-22818",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "JWT algorithm confusion in Hono JWK Auth Middleware when JWK lacks \"alg\" (untrusted header.alg fallback)",
    "summary": "Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.11.4, there is a flaw in Hono’s JWK/JWKS JWT verification middleware allowed the algorithm specified in the JWT header to influence signature verification when the selected JWK did not explicitly define an algorithm. This could enable JWT algorithm confusion and, in certain configurations, allow forged tokens to be accepted. The JWK/JWKS JWT verification middleware has been updated to require an explicit allowlist of asymmetric algorithms when verifying tokens. The middleware no longer derives the verification algorithm from untrusted JWT header values. This vulnerability is fixed in 4.11.4.",
    "evidence": "osv:CVE-2026-22818",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-22818",
      "aliases": [
        "CVE-2026-22818",
        "GHSA-3vhc-576x-3qv4"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/honojs/hono",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "28452f06319ef12df94b826450f36486e286565d"
                },
                {
                  "fixed": "190f6e28e2ca85ce3d1f2f54db1310f5f3eab134"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "4.11.4"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "190f6e28e2ca85ce3d1f2f54db1310f5f3eab134"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v4.11.3",
            "v4.11.2",
            "v4.11.1",
            "v4.11.0",
            "v4.10.8",
            "v4.10.7",
            "v4.10.6",
            "v4.10.5",
            "v4.10.4",
            "v4.10.3",
            "v4.10.2",
            "v4.10.1",
            "v4.10.0",
            "v4.9.12",
            "v4.9.11",
            "v4.9.10",
            "v4.9.9",
            "v4.9.8",
            "v4.9.7",
            "v4.9.6",
            "v4.9.5",
            "v4.9.4",
            "v4.9.3",
            "v4.9.2",
            "v4.9.1",
            "v4.9.0",
            "v4.8.12",
            "v4.8.11",
            "v4.8.10",
            "v4.8.9",
            "v4.8.8",
            "v4.8.7",
            "v4.8.6",
            "v4.8.5",
            "v4.8.4",
            "v4.8.3",
            "v4.8.2",
            "v4.8.1",
            "v4.8.0",
            "v4.7.11",
            "v4.7.10",
            "v4.7.9",
            "v4.7.8",
            "v4.7.7",
            "v4.7.6",
            "v4.7.5",
            "v4.7.4",
            "v4.7.3",
            "v4.7.2",
            "v4.7.1",
            "v4.7.0",
            "v4.6.20",
            "v4.6.19",
            "v4.6.18",
            "v4.6.17",
            "v4.6.16",
            "v4.6.15",
            "v4.6.14",
            "v4.6.13",
            "v4.6.12",
            "v4.6.11",
            "v4.6.10",
            "v4.6.9",
            "v4.6.8",
            "v4.6.7",
            "v4.6.6",
            "v4.6.5",
            "v4.6.4",
            "v4.6.3",
            "v4.6.2",
            "v4.6.1",
            "v4.6.0",
            "v4.5.11",
            "v4.5.10",
            "v4.5.9",
            "v4.5.8",
            "v4.5.7",
            "v4.5.6",
            "v4.5.5",
            "v4.5.4",
            "v4.5.3",
            "v4.5.2",
            "v4.5.1",
            "v4.5.0",
            "v4.4.13",
            "v4.4.12",
            "v4.4.11",
            "v4.4.10",
            "v4.5.0-rc.2",
            "v4.4.9",
            "v4.4.8",
            "v4.4.7",
            "v4.4.6",
            "v4.5.0-rc.1",
            "v4.4.5",
            "v4.4.4",
            "v4.4.3",
            "v4.4.2",
            "v4.4.1",
            "v4.4.0",
            "v4.3.11",
            "v4.3.10",
            "v4.3.9",
            "v4.3.8",
            "v4.3.7",
            "v4.3.6",
            "v4.3.5",
            "v4.3.4",
            "v4.3.3",
            "v4.3.2",
            "v4.3.1",
            "v4.3.0",
            "v4.2.9",
            "v4.2.8",
            "v4.2.7",
            "v4.2.6",
            "v4.2.5",
            "v4.2.4",
            "v4.2.3",
            "v4.2.2",
            "v4.2.1",
            "v4.2.0",
            "v4.1.7",
            "v4.1.6",
            "v4.1.5",
            "v4.1.4",
            "v4.1.3",
            "v4.1.2",
            "v4.1.1",
            "v4.1.0",
            "v4.0.10",
            "v4.1.0-rc.1",
            "v4.0.9",
            "v4.0.8",
            "v4.0.7",
            "v4.0.6",
            "v4.0.5",
            "v4.0.4",
            "v4.0.3",
            "v4.0.2",
            "v4.0.1",
            "v4.0.0",
            "v3.12.12",
            "v3.12.11",
            "v3.12.10",
            "v3.12.9",
            "v4.0.0-rc.3",
            "v3.12.8",
            "v3.12.7",
            "v4.0.0-rc.2",
            "v3.12.6",
            "v4.0.0-rc.1",
            "v3.12.5",
            "v3.12.4",
            "v3.12.3",
            "v3.12.2",
            "v4.0.0-rc.0",
            "v3.12.1",
            "v3.12.0",
            "v3.11.12",
            "v3.11.11",
            "v3.11.10",
            "v3.11.9",
            "v3.11.8",
            "v3.11.7",
            "v3.11.6",
            "v3.11.5",
            "v3.11.4",
            "v3.11.3",
            "v3.11.2",
            "v3.11.1",
            "v3.11.0",
            "v3.10.5",
            "v3.10.4",
            "v3.10.3",
            "v3.10.2",
            "v3.10.1",
            "v3.10.0",
            "v3.9.2",
            "v3.9.1",
            "v3.9.0",
            "v3.9.0-rc.1",
            "v3.8.4",
            "v3.8.3",
            "v3.8.2",
            "v3.8.1",
            "v3.8.0",
            "v3.8.0-rc.3",
            "v3.7.6",
            "v3.8.0-rc.2",
            "v3.7.5",
            "v3.8.0-rc.1",
            "v3.7.4",
            "v3.7.3",
            "v3.7.2",
            "v3.7.1",
            "v3.7.0",
            "v3.6.3",
            "v3.6.2",
            "v3.6.1",
            "v3.6.0",
            "v3.6.0-rc.2",
            "v3.6.0-rc.1",
            "v3.5.8",
            "v3.5.7",
            "v3.5.6",
            "v3.5.5",
            "v3.5.4",
            "v3.5.3",
            "v3.5.2",
            "v3.5.1",
            "v3.5.0",
            "vv3.5.0-rc.1",
            "v3.4.3",
            "v3.4.2",
            "v3.4.1",
            "v3.4.0",
            "v3.3.4",
            "v3.3.3",
            "v3.3.2",
            "v3.3.1",
            "v3.3.0",
            "v3.3.0-rc.1",
            "v3.2.7",
            "v3.2.6",
            "v3.2.5",
            "v3.2.4",
            "v3.2.3",
            "v3.2.2",
            "v3.2.1",
            "v3.2.0",
            "v3.2.0-rc.3",
            "v3.2.0-rc.1",
            "v3.1.8",
            "v3.1.7",
            "v3.1.6",
            "v3.1.5",
            "v3.1.4",
            "v3.1.3",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.5",
            "v3.0.4",
            "v3.0.3",
            "v3.0.2",
            "v3.0.1",
            "v3.0.0",
            "v3.0.0-rc.16",
            "v3.0.0-rc.15",
            "v2.7.8",
            "v3.0.0-rc.14",
            "v3.0.0-rc.13",
            "v2.7.7",
            "v2.7.6",
            "v3.0.0-rc.9",
            "v3.0.0-rc.10",
            "v2.7.5",
            "v2.7.4",
            "v2.7.3",
            "v3.0.0-rc.5",
            "v2.7.2",
            "v3.0.0-rc.4",
            "v2.7.1",
            "v2.7.0",
            "v2.6.2",
            "v2.6.1",
            "v2.6.0",
            "v2.5.10",
            "v2.5.9",
            "v2.5.8",
            "v2.5.7",
            "v2.5.6",
            "v2.5.5",
            "v2.5.4",
            "v2.5.3",
            "v2.5.2",
            "v2.5.1",
            "v2.5.0",
            "v2.4.1",
            "v2.4.0",
            "v2.3.2",
            "v2.3.1",
            "v2.3.0",
            "v2.2.5",
            "v2.2.4",
            "v2.2.3",
            "v2.2.2",
            "v2.2.1",
            "v2.2.0",
            "v2.1.4",
            "v2.1.3",
            "v2.1.2",
            "v2.1.1",
            "v2.1.0",
            "v2.0.9",
            "v2.0.8",
            "v2.0.7",
            "v2.0.6",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v2.0.0",
            "v1.6.5-0",
            "v1.6.4",
            "v1.6.3",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.6.0-0",
            "v1.5.2",
            "v1.5.1",
            "v1.5.0",
            "v1.4.7",
            "v1.4.6",
            "v1.4.5",
            "v1.4.4",
            "v1.4.3",
            "v1.4.2",
            "v1.4.1",
            "v1.4.0",
            "v1.3.6",
            "v1.3.5",
            "v1.3.4",
            "v1.3.3",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.2",
            "v1.2.1",
            "v1.2.0",
            "v1.1.1",
            "v1.1.0",
            "v1.0.0",
            "v0.5.10",
            "v0.5.9",
            "v0.5.8",
            "v0.5.7",
            "v0.5.6",
            "v0.5.5",
            "v0.5.4",
            "v0.5.3",
            "v0.5.2",
            "v0.5.1",
            "v0.5.0",
            "v0.4.2",
            "v0.4.1",
            "v0.4.0",
            "v0.3.8",
            "v0.3.7",
            "v0.3.6",
            "v0.3.5",
            "v0.3.4",
            "v0.3.3",
            "v0.3.2",
            "v0.3.1",
            "v0.3.0",
            "v0.2.4",
            "v0.2.3",
            "v0.2.2",
            "v0.2.1",
            "v0.2.0",
            "v0.1.0",
            "v0.0.16",
            "v0.0.15",
            "v0.0.14",
            "v0.0.13",
            "v0.0.11",
            "v0.0.10",
            "v0.0.9",
            "v0.0.8",
            "v0.0.7",
            "v0.0.5",
            "v0.0.4",
            "v0.0.2",
            "v0.0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-22818.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:48.972933741Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22818.json",
        "https://github.com/honojs/hono/security/advisories/GHSA-3vhc-576x-3qv4",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-22818",
        "https://github.com/honojs/hono/commit/190f6e28e2ca85ce3d1f2f54db1310f5f3eab134"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-347"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22818.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-22818",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 517321,
  "published_at": "2026-01-13T19:49:52.042+00:00"
}