Name | CVE-2024-58135 |
Description | Mojolicious versions from 7.28 through 9.40 for Perl may generate weak HMAC session secrets. When creating a default app with the "mojo generate app" tool, a weak secret is written to the application's configuration file using the insecure rand() function, and used for authenticating and protecting the integrity of the application's sessions. This may allow an attacker to brute force the application's session keys. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Debian Bugs | 1104633 |
Vulnerable and fixed packages
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|
libmojolicious-perl (PTS) | bullseye | 8.71+dfsg-1 | vulnerable |
| bookworm | 9.31+dfsg-1 | vulnerable |
| sid, trixie | 9.39+dfsg-1 | vulnerable |
The information below is based on the following data on fixed versions.
Notes
[bookworm] - libmojolicious-perl <no-dsa> (Minor issue)
[bullseye] - libmojolicious-perl <postponed> (Minor issue)
https://lists.security.metacpan.org/cve-announce/msg/29241187/
https://github.com/mojolicious/mojo/commit/c82071556c569a251152892c8cc2fd0ad5a4be54 (v9.39)
The problem does not occur if the user has configured a cryptographically
secure HMAC session secret, and upstream expects users to already be doing
that for production deployments. The fix automatically generates a secure
session secret. It requires libcryptx-perl >=0.080, but they say this is
only because that is the only release they tested. I.e., it is likely that
the fix works fine with older CryptX: https://github.com/mojolicious/mojo/discussions/2255
As per upstream mojolicious/v9.39 will still be considered vulnerable to the
CVE since the CryptX is not a required dependency.