Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| JBERGER | Mojo::JWT | < 1.02 | 1.02 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | libmojo-jwt-perl | 1.02-1 | — |
| Debian 13 | libmojo-jwt-perl | No fix yet | — |
| Debian 12 | libmojo-jwt-perl | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | libmojo-jwt-perl | No fix yet | — |
| Ubuntu 24.04 LTS | libmojo-jwt-perl | No fix yet | — |
| Ubuntu 22.04 LTS | libmojo-jwt-perl | No fix yet | — |
| Ubuntu 20.04 LTS | libmojo-jwt-perl | No fix yet | — |
| Ubuntu 18.04 LTS | libmojo-jwt-perl | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | perl-Mojo-JWT | 1.20.0-2.1 | openSUSE-SU-2026:11450-1 |
Advisories 1
- openSUSE-SU-2026:11450-1 perl-Mojo-JWT-1.20.0-2.1 on GA media SUSE / openSUSE Security Updates · Aug 5, 2026