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::Role::ConfigReader - Config role for Dancer2 core objects

VERSION

version 0.300000

DESCRIPTION

Provides a config attribute that feeds itself by finding and parsing configuration files.

Also provides a setting() method which is supposed to be used by externals to read/write config entries.

ATTRIBUTES

location

Absolute path to the directory where the server started.

config_location

Gets the location from the configuration. Same as $object->location.

environments_location

Gets the directory were the environment files are stored.

config

Returns the whole configuration.

environments

Returns the name of the environment.

config_files

List of all the configuration files.

METHODS

settings

Alias for config. Equivalent to <<$object->config>>.

setting

Get or set an element from the configuration.

has_setting

Verifies that a key exists in the configuration.

load_config_file

Load the configuration files.

AUTHOR

Dancer Core Developers

COPYRIGHT AND LICENSE

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