Commit Graph

557 Commits

Author SHA1 Message Date
Sam Dodrill a5e296e4eb modules/m_sasl: sasl: fix regression introduced by sasl <-> auth_user integration.
This fixes the null-dereference reported on full-disclosure [1].  A
corrected analysis of the issue
follows below:

When SASL authentication completes, and auth_user is requested,
client_p->user may be NULL. Thusly accessing fields of client_p->user
may cause a null dereference. In these cases, aborting SASL auth
early is a correct interpretation of the IRCv3.1 specification.  The
code must handle this situation, which this commit corrects.

[1]: http://seclists.org/fulldisclosure/2014/Mar/320
2014-03-23 13:57:49 -07:00
Sam Dodrill 1bd7b59879 clicaps: Disable away-notify for now 2014-03-20 07:42:29 -07:00
Sam Dodrill 3a8780867a modules/m_sasl: Emergency patch for m_sasl. Details on full-disclosure 2014-03-17 11:02:55 -07:00
Sam Dodrill 06bfe138d2 modules/m_oper: Prevent password guessing
Change the message for an invalid OPER password to "No appropriate
operator blocks were found for your host".
2014-02-14 19:28:40 -08:00
Sam Dodrill 177241882c Merge branch 'ircv3-metadata'
Allow support for the ircv3 metadata verbs while maintaining backwards
compatibility with the old ShadowIRCD verbs
2014-01-17 08:19:39 -08:00
Sam Dodrill 2f35248278 modules/m_whois: Allow clients to see their own umodes when whoising themselves 2013-12-27 09:32:49 -08:00
Sam Dodrill 8bff90d496 modules/core/m_metadata: Re-add support for the old metadata verbs and document the old metadata system. 2013-11-24 14:22:51 -08:00
Sam Dodrill 5810ebb18f modules/code/m_metadata: Changed to conform to IRCv3 command spec 2013-11-24 14:11:00 -08:00
Sam Dodrill 31b7c1031a modules/m_post: Fix s2s message framing issue 2013-11-11 21:14:19 -05:00
Sam Dodrill ccf057bdd7 Revert "Nickname changes are a global SNOTE"
This reverts commit 3efbe7d9fa.
2013-10-08 11:22:56 -07:00
Sam Dodrill 3efbe7d9fa Nickname changes are a global SNOTE 2013-10-08 10:16:52 -07:00
Sam Dodrill b98962e306 modules/m_post: remote rejection snote for HTTP proxies 2013-10-06 20:06:17 -07:00
Sam Dodrill 0814442111 away-notify and away rate limiting added
Referenced:

atheme/charybdis@c5bbc60375 : Add
away-notify client capability.
atheme/charybdis@d42e6915cf : Pace aways.
atheme/charybdis@725403fd7f : Don't end
the flood grace period with the first AWAY.
atheme/charybdis@dc0fd46236 : Ensure AWAY
pacing only affects local clients.
2013-10-04 21:32:00 -07:00
Sam Dodrill 0d45b7860f Merge account-notify and extended-join client capabilities 2013-09-29 05:24:52 -07:00
Sam Dodrill 3ed02190ef Merge branch 'owner-mode' into devel 2013-09-28 20:39:55 -07:00
Sam Dodrill 1d878cec57 Documentation on +M clarified in helpfile and module source code 2013-09-17 18:26:12 -07:00
Sam Dodrill 25e7c22891 m_nick: Reject nicks with '~' in them, rather than cutting at the '~'
Merge of commit da2fc2cbdec471b516a2aa56ed9f3513da8df87c in master

The behavior of cutting at the first '~' is confusing at first, and
looks too much like a bug.

atheme/charybdis@96b89dce38
2013-09-17 17:43:52 -07:00
Sam Dodrill aa294a3a54 Support for channel owner mode added
This is a lot like the previous channel owner mode patch, except the
documentation that previously said "admin" now says "owner" in comments.

src/channel: Kicking logic for owner mode fixed

src/channel: Document the kick/deop logic

decruft: remove temporary files
2013-09-13 11:45:38 -07:00
Joah 806af85d26 Ported m_capab Crash Exploit Fix from charybdis
Ported the fix from charybdis to ShadowIRCd.
2012-12-31 14:49:19 -05:00
JD Horelick bf9bfd2696 run autoconf, autoheader and make depend 2012-02-29 23:18:57 -05:00
Nathan Phillip Brink e8da6ccee6 Add explicit support for being installed into a system triggered with --enable-fhs-paths.
Add two mechanism for avoiding name-collisions in a system-wide installation of charybdis. The ssld and bandb daemons, intended to be directly used by ircd and not the user, install into libexec when --enable-fhs-paths is set. For binaries which are meant to be in PATH (bindir), such as ircd and viconf, there is now an option --with-program-prefix=progprefix inspired by automake. If the user specifies --with-program-prefix=charybdis, the ircd binary is named charybdisircd when installed. Add support for saving the pidfile to a rundir and storing the ban database in localstatedir instead of in sysconfdir. This is, again, conditional on --enable-fhs-paths. Fix(?) genssl.sh to always write created SSL key/certificate/dh parameters to the sysconfdir specified during ./configure. The previous behavior was to assume that the user ran genssl.sh after ensuring that his current working directory was either sysconfdir or a sibling directory of sysconfdir.
2012-02-29 23:16:29 -05:00
Nathan Phillip Brink e131a2ed68 During installation, don't unconditionally create an empty `modules-old' directory. 2012-02-29 23:14:09 -05:00
Nathan Phillip Brink 84cda210f0 Use LDFLAGS when compiling extensions or modules. 2012-02-29 23:14:04 -05:00
JD Horelick 040c2a5ba9 Fix handling of ACTIONs when chmode +G is set. 2012-02-28 15:12:33 -05:00
Jilles Tjoelker 3cc95ad818 Allow kick_on_split_riding to protect channels with mlocked keys.
Do kick_on_split_riding if services sends an SJOIN
with a lower TS and a different key. This relies on
services restoring TS (changets option in atheme) and
services not immediately parting after receiving the
KICK, which is the case in recent atheme.

For invite-only channels, still only do
kick_on_split_riding in netbursts. Services is
assumed to handle this itself (atheme does).
2011-04-06 19:05:08 +02:00
Elizabeth Jennifer Myers d9c2579647 m_challenge: fix use of undefined behaviour.
GCC does what we expect, but other compilers could do just about anything.
2011-02-22 12:00:45 -05:00
Jilles Tjoelker e9ced3de20 hunt_server: Disallow wildcarded nicknames.
Any hunted parameter with wildcards is now assumed
to be a server, never a user.

Reasons:
* fewer match() calls
* do not disclose existing nicknames
* more intuitive behaviour for CONNECT

m_trace has a copy of some hunt_server logic in it
(for the RPL_TRACELINK reply), so adjust that too.
2011-01-08 17:47:05 +01:00
Keith Buck f38f82ac36 Move list-related isupport items to the list module itself. 2011-01-06 00:40:08 -08:00
JD Horelick e8e3ef0dfb Add topic TS and channel TS constraints for /LIST. 2011-01-19 15:45:45 -05:00
JD Horelick e78f804d42 Implement operspy for /LIST. 2011-01-19 15:41:23 -05:00
Keith Buck a0a6c0dd39 Fix multiple RPL_LISTEND replies when aborting a /LIST. 2011-01-02 00:43:11 -08:00
William Pitcock 5ac470475d Add support for linking using SSL certificate fingerprints as the link credential rather than the traditional server-password pair. 2010-12-13 23:14:00 -06:00
B.Greenham 5323ec7352 Move flood_attack_channel to channel.c so it can be used outside m_message.c 2010-12-11 16:11:54 -05:00
JD Horelick e9bd45dd8c Remove auth_user support from m_pass.c. It's pointless here and it breaks the functionality of having it in m_sasl which is actually useful.... 2010-11-25 03:22:02 -05:00
JD Horelick 2e6fddcccf Force a password if auth_user is sent in PASS.
Not doing this (and not having a password on the auth block) makes it really
easy for anyone to get access to that auth block.
2010-11-24 04:46:36 -05:00
JD Horelick f5ed1007ba Make auth_user work with SASL and add it to the example configs. 2010-11-21 15:03:17 -05:00
William Pitcock 585e477be8 Filter bogus CTCP ACTION messages. 2010-11-05 01:16:03 -05:00
JD Horelick 10f11ca3b5 Fix a minor spelling error in m_kick.
Thanks to Elizabeth for pointing this out.
2010-11-17 19:08:47 -05:00
JD Horelick 6c7315ec36 Some clang static analyzer fixes.
More in a moment.
2010-10-23 22:30:52 -04:00
alxbl 829ce93fb8 Added check for division by 0 in m_message.c Hopefully fixes #25 2010-09-07 20:21:29 -04:00
B.Greenham 4023293674 Merge. 2010-10-11 11:58:39 -04:00
B.Greenham 90728edb58 Backed out changeset 3097ade953f5
Backout modesets.

They're overly invasive and a bit uglier than is required.
The same thing can be accomplished in a better way with another method.
2010-10-11 11:58:21 -04:00
William Pitcock fc579e36e7 Enforce TS rules on MLOCKs. 2010-08-23 20:22:59 -05:00
JD Horelick e610316019 First part of charybdis changeset 1393:da0c7fdb7ee1 2010-09-11 13:49:21 -04:00
B.Greenham 1fe75e33cc mode api: Remove most modes from the chmode_table, and have them initialized in modeset files.
Modeset files are modules stored in shadowircd/modes. All they do is initalize
a set of modes on load, and orphan said modes on unload.

All cmodes not included in ircd-ratbox are now located in modeset files, rather
than being in the core. These modes no longer simply use defines, their
locations are stored in a the new struct module_modes. Each of these is set
when intializing the mode in the modeset files, and set to 0 when orphaning
the mode upon unloading the modeset file.

In addition, use_forward has been removed, as it is now obsoleted by modesets.
2010-07-02 19:09:46 -04:00
JD Horelick 133755685e Removal of ancient SVN ID's part one 2010-06-10 21:22:44 -04:00
Jilles Tjoelker 97bd6a2e37 Propagate changed away messages to other servers,
even if the away status did not change.
2010-06-10 22:16:07 +02:00
Elly 86ed11bb4c Fix memory leaks in PASS command, both in normal and repeated use. 2010-06-01 13:11:47 -04:00
Stephen Bennett c554add299 Allow the final parameter of MLOCK to be empty, to remove an existing mlock 2010-05-02 20:42:46 +01:00
Stephen Bennett b72bd23a03 Rework ircd-side MLOCK enforcement: instead of trying to track modes locked on or off, instead keep a simple list of mode letters that are locked, and reject any change to those modes. 2010-04-30 22:01:21 +01:00