Security Advisories (2)
CVE-2024-58134 (2025-05-03)

Mojolicious versions from 0.999922 for Perl uses a hard coded string, or the application's class name, as a HMAC session secret by default. These predictable default secrets can be exploited to forge session cookies. An attacker who knows or guesses the secret could compute valid HMAC signatures for the session cookie, allowing them to tamper with or hijack another user's session.

CVE-2024-58135 (2025-05-03)

Mojolicious versions from 7.28 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.

NAME

Mojo::UserAgent::Proxy - User agent proxy manager

SYNOPSIS

use Mojo::UserAgent::Proxy;

my $proxy = Mojo::UserAgent::Proxy->new;
$proxy->detect;
say $proxy->http;

DESCRIPTION

Mojo::UserAgent::Proxy manages proxy servers for Mojo::UserAgent.

ATTRIBUTES

Mojo::UserAgent::Proxy implements the following attributes.

http

my $http = $proxy->http;
$proxy   = $proxy->http('socks://sri:secret@127.0.0.1:8080');

Proxy server to use for HTTP and WebSocket requests.

https

my $https = $proxy->https;
$proxy    = $proxy->https('http://sri:secret@127.0.0.1:8080');

Proxy server to use for HTTPS and WebSocket requests.

not

my $not = $proxy->not;
$proxy  = $proxy->not(['localhost', 'intranet.mojolicious.org']);

Domains that don't require a proxy server to be used.

METHODS

Mojo::UserAgent::Proxy inherits all methods from Mojo::Base and implements the following new ones.

detect

$proxy = $proxy->detect;

Check environment variables HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, NO_PROXY and no_proxy for proxy information. Automatic proxy detection can be enabled with the MOJO_PROXY environment variable.

is_needed

my $bool = $proxy->is_needed('intranet.example.com');

Check if request for domain would use a proxy server.

prepare

$proxy->prepare(Mojo::Transaction::HTTP->new);

Prepare proxy server information for transaction.

SEE ALSO

Mojolicious, Mojolicious::Guides, https://mojolicious.org.