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::Hook - Manipulate hooks with Dancer2

VERSION

version 2.1.0

SYNOPSIS

# inside a plugin
use Dancer2::Core::Hook;
Dancer2::Core::Hook->register_hooks_name(qw/before_auth after_auth/);

METHODS

register_hook ($hook_name, $code)

hook 'before' => sub {...};

Attaches a hook at some point.

register_hooks_name

Add a new hook name, so application developers can insert some code at this point.

package My::Dancer2::Plugin;
Dancer2::Core::Hook->instance->register_hooks_name(qw/before_auth after_auth/);

execute_hook

Execute a hook

get_hooks_for

Returns the list of coderef registered for a given position

hook_is_registered

Test if a hook with this name has already been registered.

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 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.