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

Dancer2 versions through 2.1.0 for Perl generate insecure session ids when required CSPRNG modules are unavailable. Dancer2::Core::Role::SessionFactory::generate_id silently falls back to a built-in rand-derived session id unless both Math::Random::ISAAC::XS and Crypt::URandom are available. 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::HasConfig - Role that represents the config of Dancer2 App

VERSION

version 2.1.0

DESCRIPTION

This role provides a config attribute that is used to read the configuration. When accessing the first time, it calls method _build_config() which must be implemented by the using class. This method should return the whole config which has been created by executing one or more ConfigReader packages.

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

ATTRIBUTES

config

Returns the whole configuration.

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.

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.