Security Advisories (12)
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.

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-2011-1841 (2011-03-10)

Mojolicious is vulnerable to cross-site scripting, caused by improper validation of user-supplied input by link_to helper. A remote attacker could exploit this vulnerability using a specially-crafted URL to execute script in a victim's Web browser within the security context of the hosting Web site, once the URL is clicked. An attacker could use this vulnerability to steal the victim's cookie-based authentication credentials.

CVE-2011-1589 (2011-04-05)

Directory traversal vulnerability in Path.pm in Mojolicious before 1.16 allows remote attackers to read arbitrary files via a %2f..%2f (encoded slash dot dot slash) in a URI.

CVE-2011-1841 (2011-05-03)

Cross-site scripting (XSS) vulnerability in the link_to helper in Mojolicious before 1.12 allows remote attackers to inject arbitrary web script or HTML via unspecified vectors.

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.

Changes for version 0.999930 - 2010-10-18

  • Code name "Hot Beverage", this is a major release.
  • Removed Mojo::Server::Daemon::Prefork due to unfixable design flaws regarding WebSocket support, please use a PSGI server instead for HTTP production setups. For scalable WebSocket deployment we will introduce a whole new server in one of the next releases!
  • Deprecated old Mojo::Template block syntax and added a very pretty replacement. (See documentation for more)
  • Deprecated helper method in Mojolicious::Controller.
  • Deprecated all *_cb methods (and finished/receive_message) in favor of on_* methods.
  • Deprecated process method in Mojo::Client and added new start method.
  • Replaced the "mojolicious" command with "mojo", for convenience.
  • Removed Mojo::Command::Generate::App.
  • Renamed the methods name and replace_content to type and replace_inner in Mojo::DOM.
  • Added EXPERIMENTAL support for indented Perl lines in Mojo::Template.
  • Added EXPERIMENTAL support for --mode and --home options to all Mojolicious commands.
  • Added EXPERIMENTAL support for helper methods.
  • Added EXPERIMENTAL helper method to Mojolicious.
  • Added EXPERIMENTAL support for inline rendering to Mojolicious.
  • Added EXPERIMENTAL memorize helper to Mojolicious::Plugin::DefaultHelpers. (ptomli)
  • Added EXPERIMENTAL write, write_chunk and rendered methods to Mojolicious::Controller.
  • Added EXPERIMENTAL support for loading of plugins by full module name.
  • Added EXPERIMENTAL tag helpers to Mojolicious.
  • Added EXPERIMENTAL support for radio buttons and select fields to Mojolicious::Plugin::TagHelpers. (kvorg)
  • Added EXPERIMENTAL is_limit_exceeded, max_line_size and max_message_size methods to Mojo::Message.
  • Added EXPERIMENTAL automatic relaxed parsing support for HTTP responses.
  • Added while, until and inner_xml methods for Mojo::DOM collections. (vti)
  • Added b function to all Mojo::Template templates.
  • Added selector support to the dom method of Mojo::Message. (marcus)
  • Added x function to ojo. (DaTa)
  • Added failed request warnings to ojo. (marcus)
  • Added support for selector groups to Mojo::DOM.
  • Added more attribute selectors, pseudo classes and combinators to Mojo::DOM.
  • Added support for mode specific config files to Mojolicious::Plugin::JsonConfig. (marcus)
  • Added reserved route name current.
  • Simplified transaction pausing by replacing it with an automatism.
  • Improved RFC3986 compliance of Mojo::Path. (janus)
  • Improved Mojo::Server::PSGI to preload applications.
  • Improved FastCGI detection for Dreamhost. (garu)
  • Improved keep alive timeout handling in Mojo::Client.
  • Improved documentation. (rhaen)
  • Improved Mojo::ByteStream performance. (mons)
  • Improved Mojo::Parameters performance. (kimoto)
  • Improved Mojo::Message::Response parser resilience.
  • Improved template class handling in MojoX::Renderer. (vti)
  • Fixed a serious design flaw in Mojo::Message and made long poll much easier.
  • Fixed a bug where Mojo::IOLoop connections could be closed too early.
  • Fixed a bug where a broken renderer could cause a fatal exception.
  • Fixed HTTPS support for CGI environments.
  • Fixed a auto rendering bug related to bridges.
  • Fixed Mojo::IOLoop Windows support.
  • Fixed Mojo::DOM class selector bug. (tempire)
  • Fixed small render bug. (skaurus)
  • Fixed a small renderer bug.
  • Fixed automatic reloading for external templates.
  • Fixed after_build_tx plugin hook callback order.
  • Fixed a small under bug in Mojolicious::Lite.
  • Fixed logging of UTF-8 errors. (und3f)
  • Fixed Mojo::DOM parser bug. (esskar)
  • Fixed TLS handshake bug in Mojo::IOLoop. (und3f)
  • Fixed a small Test::Mojo bug.
  • Fixed multiple route condition bugs. (esskar)
  • Fixed a small relative path bug in Mojo::URL.
  • Fixed pod renderer bug. (vti)
  • Fixed a multipart parser bug affecting mostly file uploads.
  • Fixed input tag helper escaping. (vti)
  • Fixed url_for WebSocket support.
  • Fixed url_for format handling.

Documentation

Mojolicious Guide To The Galaxy
Frequently Asked Questions
The Mojolicious Command System

Modules

The Box!
Asset Base Class
File Asset
In-Memory Asset
Minimal Base Class For Mojo Projects
ByteStream
Async IO HTTP 1.1 And WebSocket Client
Command Base Class
CGI Command
Daemon Command
FastCGI Command
Get Command
PSGI Command
Test Command
Version Command
Commands
HTTP 1.1 Content Base Class
HTTP 1.1 MultiPart Content Container
HTTP 1.1 Content Container
HTTP 1.1 Cookie Base Class
HTTP 1.1 Request Cookie Container
HTTP 1.1 Response Cookie Container
Cookie Jar For HTTP 1.1 User Agents
Minimalistic XML/HTML5 DOM Parser With CSS3 Selectors
HTTP 1.1 Date Container
Exceptions With Context
Headers
Hello World!
Detect And Access The Project Root Directory In Mojo
Minimalistic Reactor For TCP Clients And Servers
Minimalistic JSON
Loader
Simple Logger For Mojo
HTTP 1.1 Message Base Class
HTTP 1.1 Request Container
HTTP 1.1 Response Container
Parameter Container
Path
HTTP Server Base Class
CGI Server
Async IO HTTP 1.1 And WebSocket Server
FastCGI Server
PSGI Server
Perlish Templates!
Transaction Base Class
HTTP 1.1 Transaction Container
WebSocket Transaction Container
Uniform Resource Locator
Upload Container
Controller Base Class
Routes Dispatcher
Serve Static Files
MIME Type Based Renderer
Always Find Your Destination With Routes
Routes Visitor
Routes Pattern
Signed Cookie Based Sessions
Controller Base Class
MIME Types
The Web In A Box!
Generator Command
App Generator Command
Gitignore Generator Command
Lite App Generator Command
Makefile Generator Command
Controller Base Class
Micro Web Framework
Plugin Base Class
Agent Condition Plugin
Default Helpers Plugin
EP Renderer Plugin
EPL Renderer Plugin
Header Condition Plugin
Intenationalization Plugin
JSON Configuration Plugin
POD Renderer Plugin
Powered By Plugin
Request Timer Plugin
Tag Helpers Plugin
Testing Mojo!
ojo
Fun Oneliners With Mojo!

Provides

in lib/Mojo/DOM.pm
in lib/Mojo/JSON.pm
in lib/Mojo/Server/PSGI.pm
in lib/Mojolicious/Plugin/I18n.pm