Security Advisories (1)
CVE-2026-5083 (2026-04-08)

Ado::Sessions versions through 0.935 for Perl generates insecure session ids. The session id is generated from a SHA-1 hash seeded with the built-in rand function, the epoch time, and the PID. The PID will come from a small set of numbers, and the epoch time may be guessed, if it is not leaked from the HTTP Date header. The built-in rand function is unsuitable for cryptographic usage. Predicable session ids could allow an attacker to gain access to systems. Note that Ado is no longer maintained, and has been removed from the CPAN index. It is still available on BackPAN.

NAME

Ado::Build - Custom routines for Ado installation

SYNOPSIS

#See Build.PL
use 5.014002;
use strict;
use warnings FATAL => 'all';
use FindBin;
use lib("$FindBin::Bin/lib");
use Ado::Build;
my $builder = Ado::Build->new(..);
$self->create_build_script();

DESCRIPTION

This is a subclass of Module::Build. We use Module::Build::API to add custom functionality so we can install Ado in a location chosen by the user.

This module and Ado::BuildPlugin exist just because of the aditional install paths that we use beside c<lib> and <bin>. These modules also can serve as examples for your own builders if you have some custom things to do during build, test, install and even if you need to add a new ACTION_* to your setup.

METHODS

Ado::Build inherits all methods from Module::Build and implements the following ones.

create_build_script

This method is called in Build.PL. It checks if $ENV{ADO_HOME} is set and if Ado is installed there. If so suggests backup of the existing installation. in this method we also call c<add_build_element> for etc public and log folders. Also here is the functionality for prompting the user about the "install_base" in Module::Build directory this will be $ENV{ADO_HOME}. Finally we set all the c<install_path>s for the distro and we call $self->SUPER::create_build_script.

process_etc_files

Moves files found in Ado/etc to Ado/blib/etc. See "METHODS" in Module::Build::API Returns void.

process_log_files

Moves files found in Ado/log to Ado/blib/log. Returns void.

process_public_files

Moves files found in Ado/public to Ado/blib/public. Returns void.

process_templates_files

Moves files found in Ado/templates to Ado/blib/templates. Returns void.

ACTION_build

We will put here custom functionality executed around the $self->SUPER::ACTION_build.

ACTION_dist

We will put here custom functionality executed around the $self->SUPER::ACTION_dist.

ACTION_install

Changes file permissions to 0600 of some files like etc/ado.sqlite and to 0400 of some files like etc/ado.conf. Finally prompts the user to add $ENV{ADO_HOME} to ~/.bashrc. This is currently not implemented for Windows. The user will have to add $ENV{ADO_HOME} as environment variable him self.

You can put additional custom functionality here.

do_create_readme

Creates the README file. It will be called during ./Build dist if you set the property create_readme in Build.PL.

SEE ALSO

Ado::BuildPlugin, Module::Build::API, "ADVANCED_RECIPES" in Module::Build::Cookbook, Build.PL in Ado distribution directory.

AUTHOR

Красимир Беров (Krasimir Berov)

COPYRIGHT AND LICENSE

Copyright 2013 Красимир Беров (Krasimir Berov).

This program is free software, you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may copy, distribute and modify the software provided that modifications are open source. However, software that includes the license may release under a different license.

See http://opensource.org/licenses/lgpl-3.0.html for more information.