Security Advisories (1)
CVE-2010-3438 (2019-11-12)

libpoe-component-irc-perl before v6.32 does not remove carriage returns and line feeds. This can be used to execute arbitrary IRC commands by passing an argument such as \"some text\\rQUIT\" to the 'privmsg' handler, which would cause the client to disconnect from the server.

NAME

POE::Component::IRC::Plugin::BotAddressed - A PoCo-IRC plugin that generates an 'irc_bot_addressed', 'irc_bot_mentioned' or 'irc_bot_mentioned_action' event if its name comes up in channel discussion.

SYNOPSIS

use POE::Component::IRC::Plugin::BotAddressed;

$irc->plugin_add( 'BotAddressed', POE::Component::IRC::Plugin::BotAddressed->new() );

sub irc_bot_addressed {
    my ($kernel, $heap) = @_[KERNEL, HEAP];
    my $nick = ( split /!/, $_[ARG0] )[0];
    my $channel = $_[ARG1]->[0];
    my $what = $_[ARG2];

    print "$nick addressed me in channel $channel with the message '$what'\n";
}

sub irc_bot_mentioned {
    my ($nick) = ( split /!/, $_[ARG0] )[0];
    my ($channel) = $_[ARG1]->[0];
    my ($what) = $_[ARG2];

    print "$nick mentioned my name in channel $channel with the message '$what'\n";
}

DESCRIPTION

POE::Component::IRC::Plugin::BotAddressed is a POE::Component::IRC plugin. It watches for public channel traffic (i.e. 'irc_public' and 'irc_ctcp_action') and will generate an 'irc_bot_addressed', 'irc_bot_mentioned' or 'irc_bot_mentioned_action' event if its name comes up in channel discussion.

It uses POE::Component::IRC's nick_name() method to work out its current nickname.

METHODS

new

One optional argument:

'eat', set to true to make the plugin eat the 'irc_public' / 'irc_ctcp_action' event and only generate an appropriate event, default is false.

Returns a plugin object suitable for feeding to POE::Component::IRC's plugin_add() method.

OUTPUT

irc_bot_addressed

Has the same parameters passed as 'irc_public'. ARG2 contains the message with the addressed nickname removed, ie. Assuming that your bot is called LameBOT, and someone says 'LameBOT: dance for me', you will actually get 'dance for me'.

irc_bot_mentioned

Has the same parameters passed as 'irc_public'.

irc_bot_mentioned_action

Has the same parameters passed as 'irc_ctcp_action'.

AUTHOR

Chris 'BinGOs' Williams <chris@bingosnet.co.uk>