Skip to content

GitHub Advisory GHSA for CVE-2025-45769 ignores NVD "Disputed" status, blocks all php-jwt v6 users #620

@s00d

Description

@s00d

Problem

CVE-2025-45769 was marked as Disputed by MITRE/NVD on August 17, 2025:

"this issue has been disputed on the basis that key lengths are expected to be
set by an application, not by this library"
NVD has assigned no CVSS score (N/A). However, the GitHub Advisory Database
still lists this as High severity (using the CISA-ADP score of 7.3) and has
not reflected the disputed status.
As a result, Composer's block-insecure feature treats this as a confirmed
high-severity vulnerability and refuses to install any php-jwt v6 release.

Impact

Packages pinned to php-jwt ^6 cannot be installed or updated:

  • laravel/passport ^11 requires firebase/php-jwt ^6.4
  • Passport 12+ requires Laravel 11, so projects on Laravel 10 have no upgrade path
  • Every affected project must manually add audit.ignore in composer.json

The CVE itself

The "vulnerability" is that php-jwt accepts short HMAC keys without validation.
This is not a library bug — key management is the caller's responsibility.
PHP's own hash_hmac() and openssl_sign() behave identically and have no CVEs
for this.
NVD agrees — hence the Disputed tag and no score from NIST.

Request

  1. Update the GitHub Advisory to reflect the NVD disputed status, or withdraw it
  2. If that's not possible, backport the key length check to a v6.x patch (e.g. 6.11.2)
    so ^6 consumers are unblocked without a major version jump

Reproduction

On any project with laravel/passport ^11

composer update

firebase/php-jwt[v6.4.0, ..., v6.11.1] were not loaded, because they are
affected by security advisories ("PKSA-y2cr-5h3j-g3ys")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions