Security Advisories (10)
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-2015-01 (2015-02-02)

Directory traversal on Windows

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

CPANSA-Mojolicious-2014-01 (2014-10-07)

Context sensitivity of method param could lead to parameter injection attacks.

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::Log - Simple logger for Mojo

SYNOPSIS

use Mojo::Log;

# Create a logging object that will log to STDERR by default
my $log = Mojo::Log->new;

# Customize the log location and minimum log level
my $log = Mojo::Log->new(
  path  => '/var/log/mojo.log',
  level => 'warn',
);

$log->debug("Why isn't this working?");
$log->info("FYI: it happened again");
$log->warn("This might be a problem");
$log->error("Garden variety error");
$log->fatal("Boom!");

DESCRIPTION

Mojo::Log is a simple logger for Mojo projects.

ATTRIBUTES

Mojo::Log implements the following attributes.

handle

my $handle = $log->handle;
$log       = $log->handle(IO::File->new);

Logfile handle.

level

my $level = $log->level;
$log      = $log->level('debug');

Log level.

path

my $path = $log->path
$log     = $log->path('/var/log/mojo.log');

Logfile path.

METHODS

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

debug

$log = $log->debug('You screwed up, but that is ok');

Log debug message.

error

$log = $log->error('You really screwed up this time');

Log error message.

fatal

$log = $log->fatal('Its over...');

Log fatal message.

format

my $message = $log->format('debug', 'Hi there!');
my $message = $log->format('debug', 'Hi', 'there!');

Format log message.

info

$log = $log->info('You are bad, but you prolly know already');

Log info message.

is_level

my $success = $log->is_level('debug');

Check log level.

is_debug

my $success = $log->is_debug;

Check for debug log level.

is_error

my $success = $log->is_error;

Check for error log level.

is_fatal

my $success = $log->is_fatal;

Check for fatal log level.

is_info

my $success = $log->is_info;

Check for info log level.

is_warn

my $success = $log->is_warn;

Check for warn log level.

log

$log = $log->log(debug => 'This should work');

Log a message.

warn

$log = $log->warn('Dont do that Dave...');

Log warn message.

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.