Security Advisories (1)
CVE-2026-13577 (2026-07-20)

Dancer2 versions through 2.1.0 for Perl generate insecure session ids when CSPRNG modules are unavailable. Dancer2::Core::Role::SessionFactory::generate_id silently falls back to a built-in rand-derived session id when both Math::Random::ISAAC::XS and Crypt::URandom are unavailable. The fallback session id is generated from a SHA-1 hash of a call to the built-in rand function, the absolute path of the Dancer2::Core::Role::SessionFactory module, an internal counter, the process id, the module instance memory address, and a shuffled string of characters (using the List::Util::shuffle function, which also uses the built-in rand function). These are all low-entropy and easily guessed sources. The built-in rand() function is seeded with 32-bits and considered unsuitable for security applications. Predictable session ids could allow an attacker to gain access to systems.

NAME

Dancer2::Core::HTTP - helper for rendering HTTP status codes for Dancer2

VERSION

version 0.301000

FUNCTIONS

status(status_code)

Dancer2::Core::HTTP->status(200); # returns 200

Dancer2::Core::HTTP->status('Not Found'); # returns 404

Dancer2::Core::HTTP->status('bad_request'); # 400

Returns a HTTP status code. If given an integer, it will return the value it received, else it will try to find the appropriate alias and return the correct status.

status_message(status_code)

Dancer2::Core::HTTP->status_message(200); # returns 'OK'

Dancer2::Core::HTTP->status_message('error'); # returns 'Internal Server Error'

Returns the HTTP status message for the given status code.

status_mapping()

my %table = Dancer2::Core::HTTP->status_mapping;
# returns ( 'Ok' => 200, 'Created' => 201, ... )

Returns the full table of status -> code mappings.

code_mapping()

my %table = Dancer2::Core::HTTP->code_mapping;
# returns ( 200 => 'Ok', 201 => 'Created', ... )

Returns the full table of code -> status mappings.

all_mappings()

my %table = Dancer2::Core::HTTP->all_mappings;
# returns ( 418 => 'I'm a teapot', "I'm a teapot' => 418, 'i_m_a_teapot' => 418 )

Returns the code-to-status, status-to-code and underscore-groomed status-to-code mappings all mashed up in a single table. Mostly for internal uses.

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.