[IRCServices] Bug: Kick/ban loops

Andrew Church achurch at achurch.org
Thu Aug 23 14:02:41 PDT 2007


>I was playing around with an irc server and I found 2 ways to place a
>user in a kickban loop:
>1) placing +e ban exceptions using the extban type ~c:#channel, where
>it is supported, on ircds such as Unreal.

I can't reproduce this:

[Alcan/#123]
*** Mode change "+e ~c:#blah" on channel #123 by Alcan
-> *ChanServ* akick #123 add blah!*@*
-ChanServ- blah!*@* added to #123 autokick list.
*** blah (achurch at hide-CC7E9766) has joined channel #123
*** Mode change "-e ~c:#blah" on channel #123 by ChanServ
*** Mode change "+b blah!*@*" on channel #123 by ChanServ
*** blah has been kicked off channel #123 by ChanServ (AKICK by Alcan)

[blah/#blah]
*** blah (achurch at hide-CC7E9766) has joined channel #123
*** Mode change "-e ~c:#blah" on channel #123 by ChanServ
*** Mode change "+b blah!*@*" on channel #123 by ChanServ
*** You have been kicked off channel #123 by ChanServ (AKICK by Alcan)
*** #123 Cannot join channel (+b) (Banned from channel)

>2) Joining a forbidden/suspended channel and then setting an +e
>exception quickly

This is unfortunately difficult to fix given the current design of
Services.  I've noted it as a known issue in the documentation, but as
long as your flood protection is properly set up, this won't be a problem
in practice (and it gives people who think they're clever a harmless way
to amuse themselves).  If your flood protection isn't properly set up, of
course, you've got plenty more to worry about than join/part loops.

  --Andrew Church
    achurch at achurch.org
    http://achurch.org/