Security Advisories (3)
CVE-2026-5080 (2026-04-30)

Dancer::Session::Abstract versions through 1.3522 for Perl generates session ids insecurely. The session id is generated from summing the character codepoints of the absolute pathname with the process id, the epoch time and calls to the built-in rand() function to return a number between 0 and 999-billion, and concatenating that result three times. The path name might be known or guessed by an attacker, especially for applications known to be written using Dancer with standard installation locations. The epoch time can be guessed by an attacker, and may be leaked in the HTTP header. The process id comes from a small set of numbers, and workers may have sequential process ids. The built-in rand() function is seeded with 32-bits and is considered unsuitable for security applications. Predictable session ids could allow an attacker to gain access to systems.

CVE-2012-5572 (2014-05-30)

CRLF injection vulnerability in the cookie method allows remote attackers to inject arbitrary HTTP headers and conduct HTTP response splitting attacks via a cookie name.

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

Directory traversal vulnerability (Mojolicious report, but Dancer was vulnerable as well).

NAME

Dancer::FileUtils - helper providing file utilities

SYNOPSIS

use Dancer::FileUtils qw/path read_file_content/;

my $content = read_file_content( path( 'folder', 'folder', 'file' ) );
my @content = read_file_content( path( 'folder', 'folder', 'file' ) );

DESCRIPTION

Dancer::FileUtils includes a few file related utilities related that Dancer uses internally. Developers may use it instead of writing their own file reading subroutines or using additional modules.

SUBROUTINES/METHODS

open_file

use Dancer::FileUtils 'open_file';
my $fh = open_file('<', $file) or die $message;

Calls open and returns a filehandle. Takes in account the 'charset' setting to open the file in the proper encoding.

path

use Dancer::FileUtils 'path';

my $path = path( 'folder', 'folder', 'filename');

Provides comfortable path resolving, internally using File::Spec.

dirname

use Dancer::FileUtils 'dirname';

my $dir = dirname($path);

Exposes File::Basename's dirname, to allow fetching a directory name from a path.

read_file_content

use Dancer::FileUtils 'read_file_content';

my $content = read_file_content($file);
my @content = read_file_content($file);

Returns either the content of a file (whose filename is the input), undef if the file could not be opened.

In array context it returns each line (as defined by $/) as a seperate element Scalar context returns the entire contents of the file.

read_glob_content

use Dancer::FileUtils 'read_glob_content';

open my $fh, '<', $file or die "$!\n";
my $content = read_glob_content($fh);
my @content = read_glob_content($fh);

Same as read_file_content, only it accepts a file handle.

Returns the content and closes the file handle.

EXPORT

Nothing by default. You can provide a list of subroutines to import.

AUTHOR

Alexis Sukrieh

LICENSE AND COPYRIGHT

Copyright 2009-2010 Alexis Sukrieh.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.