Security Advisories (1)
CVE-2026-13766 (2026-06-30)

DBIx::QuickORM versions before 0.000026 for Perl allow SQL injection via unquoted SQL identifiers. The default SQL builder, a SQL::Abstract subclass, sets bindtype in its constructor but never quote_char, so SQL::Abstract emits identifiers verbatim. Caller-supplied identifiers (order_by, where-clause column keys, field and returning lists, upsert columns, and join aliases) reach the SQL string raw, while values are placeholder-bound and unaffected. A caller that forwards untrusted input to an affected identifier position, such as a user-controlled order_by value, enables SQL injection: the row order can be made to depend on a sub-select over columns the query never selected, and the where and update identifier positions permit further data disclosure and tampering.

NAME

DBIx::QuickORM::Plugin - Base class for DBIx::QuickORM plugins.

DESCRIPTION

Base class for plugins. Plugins are registered into the builder (via the plugin/plugins exports) and are given a chance to mutate each build frame as it is compiled. A plugin registered at one nesting level applies to every build nested inside it.

This base class adds no behavior of its own; subclasses provide a munge method (called with the build frame) to do their work.

SYNOPSIS

package My::Plugin;
use parent 'DBIx::QuickORM::Plugin';

sub munge {
    my $self  = shift;
    my ($frame) = @_;
    # ... adjust $frame ...
}

SOURCE

The source code repository for DBIx::QuickORM can be found at https://github.com/exodist/DBIx-QuickORM.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See https://dev.perl.org/licenses/