unstale

npm / jose

jose

What changed in jose 6, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

16 breaking8 security3 new APIs and options2 tooling23 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

jose 652 changes

Breaking changes 16

  • Mixed b64 modes are rejected for empty General JWS payloads.

    6.2.10release notes

  • Mixed payload encoding modes are rejected.

    6.2.10release notes

  • Empty protected headers and JWE AAD members are rejected.

    6.2.10release notes

  • Verification key metadata is enforced.

    6.2.10release notes

  • JWT verification policies must be explicit.

    6.2.10release notes

  • EmbeddedJWK now rejects a non-string alg value.

    6.2.8release notes

  • Decryption now enforces a single recipient for dir and ECDH-ES algorithms.

    6.2.8release notes

  • Presence checks now require properties owned by the JOSE object.

    6.2.7release notes

  • Truncated ASN.1 key data is rejected.

    6.2.5release notes

  • Characters outside the Base64URL alphabet are rejected.

    6.2.5release notes

  • Duplicate crit values are rejected when producing JOSE objects.

    6.2.5release notes

  • Rejects a crv option that is not implied by the selected algorithm.

    6.2.5release notes

  • Invalid UTF-8 is rejected in JOSE Headers and JWT Claims Sets.

    6.2.5release notes

  • Unencoded payloads are rejected when using JWS Compact Serialization.

    6.2.5release notes

  • Non-ASCII token segments now produce JOSE errors.

    6.2.5release notes

  • Failed decompression is now rejected with a JWEInvalid error.

    6.2.2release notes

Security 8

  • AES-GCM tag boundaries are enforced.

    6.2.10release notes

  • DER truncated past its outer length is rejected.

    6.2.10release notes

  • The ext and key_ops parameters are validated.

    6.2.10release notes

  • Protected headers cannot be replaced.

    6.2.10release notes

  • Unencoded payload strings are validated.

    6.2.10release notes

  • Unsecured protected headers are validated.

    6.2.10release notes

  • JWE objects with colliding generated Key Management Parameters are now rejected.

    6.2.9release notes

  • Invalid PBES2 p2c values are now cleanly rejected.

    6.2.3release notes

New APIs and options 3

  • Discriminated JOSE error types are available for more precise TypeScript error handling.

    6.2.5release notes

  • Re-introduces support for the JWE zip (Compression Algorithm) Header Parameter.

    6.2.0release notes

  • setKeyManagementParameters is now exposed on a GeneralEncrypt Recipient.

    6.1.1release notes

Tooling 2

  • JOSE identifier unions and JWK narrowing improve TypeScript type precision.

    6.2.5release notes

  • JWK narrowing improves TypeScript type precision.

    6.2.5release notes

Fixes and other changes 23

  • Builder claim values are validated.

    6.2.10release notes

  • Invalid decrypted CEK lengths are concealed.

    6.2.10release notes

  • Invalid duration inputs are rejected.

    6.2.10release notes

  • Explicit encryption parameters are validated.

    6.2.10release notes

  • Key generation and import options are validated.

    6.2.10release notes

  • Key resolution inputs are normalized.

    6.2.10release notes

  • Empty octet-sequence keys are accepted.

    6.2.10release notes

  • Invalid remote duration values are rejected.

    6.2.10release notes

  • Overlapping remote reloads are ordered.

    6.2.10release notes

  • Serialization members are consumed only once.

    6.2.10release notes

  • Serialized header values are validated.

    6.2.10release notes

  • The PBES2 p2c parameter is no longer deprecated in the type definitions.

    6.2.9release notes

  • Type declarations now accept host CryptoKey declarations.

    6.2.6release notes

  • The clockTolerance option is validated to ensure it is finite.

    6.2.5release notes

  • CryptoKey types are corrected for more accurate TypeScript usage.

    6.2.5release notes

  • The currentDate option is validated to ensure it is finite.

    6.2.5release notes

  • Claim values are compared correctly when validation options are falsy.

    6.2.5release notes

  • JWE processing now handles additional authenticated data with zero length.

    6.2.5release notes

  • Key management parameters are forwarded correctly when a JWE has a single recipient.

    6.2.5release notes

  • JWK types are corrected for more accurate TypeScript usage.

    6.2.5release notes

  • JWT header types are corrected for more accurate TypeScript usage.

    6.2.5release notes

  • Key and result type inference is improved for TypeScript consumers.

    6.2.5release notes

  • Key resolver types are corrected for more accurate TypeScript usage.

    6.2.5release notes