{"items":[{"id":"NVI-00012071","kind":"vulnerability","title":"fast-jwt : Silent claim-validator bypass when JWT payload is a JSON array","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5hjw-83fp-phq9","CVE-2026-107723"],"plain_summary":"GitHub lists this reviewed advisory for fast-jwt. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-2c0178fefa73015c80b8d26a60b79a14"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-08T22:01:59.000Z","value":"8.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-9dbdd3f533e88afb3c663869c63c9d7e"},{"kind":"EPSS","as_of":"2026-11-01T12:00:16.000Z","value":"0.455%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.39496. Missing scores are unknown.","source_id":"sr-2c0178fefa73015c80b8d26a60b79a14"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9dbdd3f533e88afb3c663869c63c9d7e","url":"https://github.com/advisories/GHSA-5hjw-83fp-phq9","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5hjw-83fp-phq9","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"},{"id":"sr-2c0178fefa73015c80b8d26a60b79a14","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-107723","publisher":"FIRST EPSS","observed_at":"2026-11-01T14:28:32.264Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9dbdd3f533e88afb3c663869c63c9d7e"],"technology":"fast-jwt","known_exclusions":[],"conditions_summary":"### Summary\n `fast-jwt`'s `createVerifier` silently skips **all** configured claim validators (`exp`, `nbf`, `iss`, `aud`, `sub`, `jti`, `nonce`) when a validly-signed JWT carries a JSON array as its payload instead of an object. The verifier reports success while having enforced only the signature. This breaks the library's documented `allowedIss` / `allowedAud` / `allowedSub` / expiry / replay-protection guarantees and violates RFC 7519 §7.2 step 10, which requires the JWT Claims Set to be a JSON object.\n\n### Details\nThe decoder validates the **header** is a non-array object but the **payload** check is missing the `Array.isArray` guard:\n\n  ```javascript\n  // src/decoder.js:49 — header check (correct)\n  if (!header || typeof header !== 'object' || Array.isArray(header)) {\n    throw new TokenError(TokenError.codes.malformed, 'The token header is not a valid JSON object.')\n  }\n\n  // src/decoder.js:65 — payload check (vulnerable)\n  if (!payload || typeof payload !== 'object') {     // typeof [] === 'object'\n    throw new TokenError(TokenError.codes.invalidPayload, 'The payload must be an object', { payload })\n  }\n\n  Because typeof [] === 'object' in JavaScript, an array payload pass","public_affected_ranges":["<= 6.2.4"]}],"null_published_at":"2026-11-06T15:18:11.459Z","source_updated_at":"2026-10-08T22:01:59.000Z","source_disclosed_at":"2026-10-08T22:01:58.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-11-01T00:58:23.763Z"},{"id":"NVI-00012071","kind":"vulnerability","title":"fast-jwt : Silent claim-validator bypass when JWT payload is a JSON array","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5hjw-83fp-phq9","CVE-2026-107723"],"plain_summary":"GitHub lists this reviewed advisory for fast-jwt. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-36dd43439733931fefaea3dce9c91211"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-08T22:01:59.000Z","value":"8.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-9dbdd3f533e88afb3c663869c63c9d7e"},{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.455%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.39503. Missing scores are unknown.","source_id":"sr-36dd43439733931fefaea3dce9c91211"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9dbdd3f533e88afb3c663869c63c9d7e","url":"https://github.com/advisories/GHSA-5hjw-83fp-phq9","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5hjw-83fp-phq9","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"},{"id":"sr-36dd43439733931fefaea3dce9c91211","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-107723","publisher":"FIRST EPSS","observed_at":"2026-11-01T01:39:43.065Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9dbdd3f533e88afb3c663869c63c9d7e"],"technology":"fast-jwt","known_exclusions":[],"conditions_summary":"### Summary\n `fast-jwt`'s `createVerifier` silently skips **all** configured claim validators (`exp`, `nbf`, `iss`, `aud`, `sub`, `jti`, `nonce`) when a validly-signed JWT carries a JSON array as its payload instead of an object. The verifier reports success while having enforced only the signature. This breaks the library's documented `allowedIss` / `allowedAud` / `allowedSub` / expiry / replay-protection guarantees and violates RFC 7519 §7.2 step 10, which requires the JWT Claims Set to be a JSON object.\n\n### Details\nThe decoder validates the **header** is a non-array object but the **payload** check is missing the `Array.isArray` guard:\n\n  ```javascript\n  // src/decoder.js:49 — header check (correct)\n  if (!header || typeof header !== 'object' || Array.isArray(header)) {\n    throw new TokenError(TokenError.codes.malformed, 'The token header is not a valid JSON object.')\n  }\n\n  // src/decoder.js:65 — payload check (vulnerable)\n  if (!payload || typeof payload !== 'object') {     // typeof [] === 'object'\n    throw new TokenError(TokenError.codes.invalidPayload, 'The payload must be an object', { payload })\n  }\n\n  Because typeof [] === 'object' in JavaScript, an array payload pass","public_affected_ranges":["<= 6.2.4"]}],"null_published_at":"2026-11-01T14:34:14.120Z","source_updated_at":"2026-10-08T22:01:59.000Z","source_disclosed_at":"2026-10-08T22:01:58.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-11-01T00:58:23.763Z"},{"id":"NVI-00012071","kind":"vulnerability","title":"fast-jwt : Silent claim-validator bypass when JWT payload is a JSON array","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-5hjw-83fp-phq9","CVE-2026-107723"],"plain_summary":"GitHub lists this reviewed advisory for fast-jwt. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-9dbdd3f533e88afb3c663869c63c9d7e"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-10-08T22:01:59.000Z","value":"8.1 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-9dbdd3f533e88afb3c663869c63c9d7e"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9dbdd3f533e88afb3c663869c63c9d7e","url":"https://github.com/advisories/GHSA-5hjw-83fp-phq9","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-5hjw-83fp-phq9","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9dbdd3f533e88afb3c663869c63c9d7e"],"technology":"fast-jwt","known_exclusions":[],"conditions_summary":"### Summary\n `fast-jwt`'s `createVerifier` silently skips **all** configured claim validators (`exp`, `nbf`, `iss`, `aud`, `sub`, `jti`, `nonce`) when a validly-signed JWT carries a JSON array as its payload instead of an object. The verifier reports success while having enforced only the signature. This breaks the library's documented `allowedIss` / `allowedAud` / `allowedSub` / expiry / replay-protection guarantees and violates RFC 7519 §7.2 step 10, which requires the JWT Claims Set to be a JSON object.\n\n### Details\nThe decoder validates the **header** is a non-array object but the **payload** check is missing the `Array.isArray` guard:\n\n  ```javascript\n  // src/decoder.js:49 — header check (correct)\n  if (!header || typeof header !== 'object' || Array.isArray(header)) {\n    throw new TokenError(TokenError.codes.malformed, 'The token header is not a valid JSON object.')\n  }\n\n  // src/decoder.js:65 — payload check (vulnerable)\n  if (!payload || typeof payload !== 'object') {     // typeof [] === 'object'\n    throw new TokenError(TokenError.codes.invalidPayload, 'The payload must be an object', { payload })\n  }\n\n  Because typeof [] === 'object' in JavaScript, an array payload pass","public_affected_ranges":["<= 6.2.4"]}],"null_published_at":"2026-11-01T01:03:56.628Z","source_updated_at":"2026-10-08T22:01:59.000Z","source_disclosed_at":"2026-10-08T22:01:58.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-01T00:58:23.763Z"}],"next_cursor":null,"snapshot_revision":"42594"}