Skip to content
Heist/ feed
Back to feed
MediumFix available

libmojo-jwt-perl — security advisory

Type: advisorySources: OSVAdvisory ID: DEBIAN-CVE-2026-9537

Mojo::JWT versions before 1.02 for Perl verify HMAC signatures with a non-constant-time string comparison. The decode() method compares the supplied signature to the recomputed HMAC with Perl's eq operator, which stops at the first differing byte, so the comparison time varies with the number of matching leading bytes. A caller that decodes attacker supplied tokens leaks the expected signature through this timing variation, which can be aggregated over many requests to recover the signature and forge a token.

Products
libmojo-jwt-perl
Affected versions
0.09-1, 1.01-1, 1.02-1
Fixed versions
1.02-1
CVEs
CVE-2026-9537
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 09:53 UTC · Revision 2

Source evidence

DEBIAN-CVE-2026-9537

core-osv · Original source

Published 17 Jul 2026, 16:17 UTC

Mojo::JWT versions before 1.02 for Perl verify HMAC signatures with a non-constant-time string comparison. The decode() method compares the supplied signature to the recomputed HMAC with Perl's eq operator, which stops at the first differing byte, so the comparison time varies with the number of matching leading bytes. A caller that decodes attacker supplied tokens leaks the expected signature through this timing variation, which can be aggregated over many requests to recover the signature and forge a token.

osv:DEBIAN-CVE-2026-9537

libmojo-jwt-perl

Fixed versions: Not specified

libmojo-jwt-perl

Fixed versions: Not specified

libmojo-jwt-perl

Fixed versions: 1.02-1

Complete source record
{
  "id": "967fc79daea340019e77e1cffb12fb4cc90f3372b3678f5966a9f3cf8bc8aa58",
  "url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-9537",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "DEBIAN-CVE-2026-9537",
    "summary": "Mojo::JWT versions before 1.02 for Perl verify HMAC signatures with a non-constant-time string comparison. The decode() method compares the supplied signature to the recomputed HMAC with Perl's eq operator, which stops at the first differing byte, so the comparison time varies with the number of matching leading bytes. A caller that decodes attacker supplied tokens leaks the expected signature through this timing variation, which can be aggregated over many requests to recover the signature and forge a token.",
    "evidence": "osv:DEBIAN-CVE-2026-9537",
    "products": [
      {
        "name": {
          "value": "libmojo-jwt-perl",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.09-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.01-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.02-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libmojo-jwt-perl",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.01-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "1.02-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libmojo-jwt-perl",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "1.02-1",
            "evidence": "/affected/2/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "1.01-1",
            "evidence": "/affected/2/versions"
          }
        ]
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "DEBIAN-CVE-2026-9537",
      "aliases": [
        "DEBIAN-CVE-2026-9537"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libmojo-jwt-perl",
            "purl": "pkg:deb/debian/libmojo-jwt-perl?arch=source&distro=bookworm",
            "ecosystem": "Debian:12"
          },
          "versions": [
            "0.09-1",
            "1.01-1",
            "1.02-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-9537.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libmojo-jwt-perl",
            "purl": "pkg:deb/debian/libmojo-jwt-perl?arch=source&distro=trixie",
            "ecosystem": "Debian:13"
          },
          "versions": [
            "1.01-1",
            "1.02-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-9537.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "1.02-1"
                }
              ]
            }
          ],
          "package": {
            "name": "libmojo-jwt-perl",
            "purl": "pkg:deb/debian/libmojo-jwt-perl?arch=source&distro=forky",
            "ecosystem": "Debian:14"
          },
          "versions": [
            "1.01-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-9537.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        }
      ],
      "modified": "2026-10-25T09:47:33.818694669Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-9537"
      ],
      "references": [
        "https://security-tracker.debian.org/tracker/CVE-2026-9537"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-9537",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 445208,
  "published_at": "2026-07-17T16:17:20.417+00:00"
}