Security Advisories (2)
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.

NAME

Dancer::FileUtils - helper providing file utilities

SYNOPSIS

use Dancer::FileUtils qw/dirname path/;

# for 'path/to/file'
my $dir  = dirname($path); # returns 'path/to'
my $path = path($path);    # returns '/abs/path/to/file'


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' ) );

use Dancer::FileUtils qw/read_glob_content set_file_mode/;

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

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

dirname

use Dancer::FileUtils 'dirname';

my $dir = dirname($path);

Exposes File::Basename's dirname, to allow fetching a directory name from a path. On most OS, returns all but last level of file path. See File::Basename for details.

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 from Dancer's configuration to open the file in the proper encoding (or defaults to utf-8 if setting not present).

path

use Dancer::FileUtils 'path';

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

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

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; in 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.

set_file_mode

use Dancer::FileUtils 'set_file_mode';

set_file_mode($fh);

Applies charset setting from Dancer's configuration. Defaults to utf-8 if no charset setting.

EXPORT

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

AUTHOR

Alexis Sukrieh

LICENSE AND COPYRIGHT

Copyright 2009-2011 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.