Security Advisories (8)
CPANSA-Mojolicious-2022-03 (2022-12-10)

Mojo::DOM did not correctly parse <script> tags.

CPANSA-Mojolicious-2021-02 (2021-06-01)

Small sessions could be used as part of a brute-force attack to decode the session secret.

CVE-2021-47208 (2021-03-16)

A bug in format detection can potentially be exploited for a DoS attack.

CVE-2018-25100 (2018-02-13)

Mojo::UserAgent::CookieJar leaks old cookies because of the missing host_only flag on empty domain.

CPANSA-Mojolicious-2018-03 (2018-05-19)

Mojo::UserAgent was not checking peer SSL certificates by default.

CVE-2020-36829 (2020-11-10)

Mojo::Util secure_compare can leak the string length. By immediately returning when the two strings are not the same length, the function allows an attacker to guess the length of the secret string using timing attacks.

CPANSA-Mojolicious-2018-02 (2018-05-11)

GET requests with embedded backslashes can be used to access local files on Windows hosts

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.

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, http://mojolicious.org.