CVE-2025-4643: Payload CMS JWT not invalidated after logout

CVE-2025-4643 · Severity: medium · CVSS 4 · Published 2025-08-29

Payload CMS is a popular open-source headless content management system used to build backend applications. The platform failed to invalidate authentication tokens when users logged out, meaning a stolen or intercepted token could be reused by an attacker to impersonate the user for up to 2 hours. This could allow unauthorized access to user accounts and sensitive data managed through the CMS.

Technologies: @payloadcms/graphql (npm), @payloadcms/next (npm), payload (npm), Payload CMS. Vendors: npm, Payload.

Quick answers

Is CVE-2025-4643 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2025-4643 being exploited in the wild.
How severe is CVE-2025-4643?
Medium severity, with a CVSS score of 4, published 29 August 2025.
Which products and versions are affected?
@payloadcms/graphql (npm) SEMVER:introduced=0,fixed=3.44.0; @payloadcms/next (npm) SEMVER:introduced=0,fixed=3.44.0; payload (npm) SEMVER:introduced=0,fixed=3.44.0; Payload CMS all versions before 3.44.0.
Is there a fix for CVE-2025-4643?
Yes. @payloadcms/graphql (npm): upgrade to 3.44.0 or later; @payloadcms/next (npm): upgrade to 3.44.0 or later; payload (npm): upgrade to 3.44.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2025-4643 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2025-4643?
Check whether you run @payloadcms/graphql (npm), @payloadcms/next (npm), payload (npm) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @payloadcms/graphql (npm): upgrade to 3.44.0 or later
    npm install @payloadcms/graphql@3.44.0
  • @payloadcms/next (npm): upgrade to 3.44.0 or later
    npm install @payloadcms/next@3.44.0
  • payload (npm): upgrade to 3.44.0 or later
    npm install payload@3.44.0

Technical details

The vulnerability stems from Payload's JWT-based authentication mechanism not implementing session invalidation on logout. While Payload uses HTTP-only cookies for token storage, the underlying JWT tokens themselves were never revoked or blacklisted when a user initiated a logout. An attacker who obtained a valid JWT (through token theft, network interception, or other means) could continue using that token to authenticate until the token's expiration time, which defaults to 2 hours but is configurable. The issue affects all versions prior to 3.44.0. The fix introduces optional session management functionality (enabled by default) that tracks and validates sessions server-side, allowing true token invalidation on logout. Legacy stateless JWT authentication remains available as an opt-out feature via `collectionConfig.auth.useSessions: false`.

Affected products

  • Payload CMS payload all versions before 3.44.0
  • Payload CMS @payloadcms/next all versions before 3.44.0
  • Payload CMS @payloadcms/graphql all versions before 3.44.0

Identifiers

  • CVE-2025-4643
  • GHSA-5v66-m237-hwf7

Timeline

  • 2025-08-29: disclosed: Vulnerability advisory published (GHSA-5v66-m237-hwf7)
  • 2025-06-27: patched: Fix released in version 3.44.0 with auth sessions feature (commit 26d709d)

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.