UnrealIRCd 5.0.2 released (fixes desync issue)

News about the UnrealIRCd project, including release announcements
Post Reply
Syzop
UnrealIRCd head coder
Posts: 1919
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

UnrealIRCd 5.0.2 released (fixes desync issue)

Post by Syzop » Wed Jan 22, 2020 8:23 am

UnrealIRCd 5.0.2 is out. It fixes a desync issue with halfops. When two servers link, users with halfops will not appear on the other side of the link, creating a so called "ghost user". This bug is present in both 5.0.0 and 5.0.1.
We recommend users running these versions to apply the "hot patch" to fix the issue without a restart (see below) or to upgrade to 5.0.2.
To apply the hot patch, run the following command on your IRCd shell:

Code: Select all

wget https://www.unrealircd.org/patches/halfop-patcher && sh ./halfop-patcher
Below is a short FAQ / Q&A on the hot patch. Further down is the original UnrealIRCd 5 announcement.

The complete UnrealIRCd 5.0.2 release notes can be found here. The 5.0.2 release contains several other fixes and enhancements, such as extended server bans.

Q&A on the hot patch

How serious is the halfop desync issue? Can it be abused?
This bug creates a "ghost user". These are users that exist in the channel on server A but are not seen as in the channel by other users on server B. First of all this creates a confusing situation where the nick list is different on server A compared to server B. It can also have more serious consequences if it is done on purpose. The ghost user may see channel messages without other channel members being aware of it. This highly depends on the channel settings and the linking topology. There are also mitigating factors:
  • On a single-server unrealircd network this problem does not exist
  • On a multi-server network, usually at least a few other users are on the other side of the link. Those users will see that an additional person is present on that side.
  • A server (re)connect is needed to trigger the issue. So a netsplit or server restart. As long as your servers stay connected to each other, users cannot trigger the issue.
Which UnrealIRCd versions are affected?
UnrealIRCd 5.0.0 and 5.0.1. The UnrealIRCd 4.x series are not affected.

What is hot patching?
It is possible to fix this issue without having to restart your IRCd. This is generally welcomed by admins. UnrealIRCd can do this because most of the code is in modules that can be reloaded on the fly.

I am on Windows, can I also use the hot patch?
No, sorry, on Windows you will have to upgrade to UnrealIRCd 5.0.2.

How do I apply the patch?
Simply SSH to your IRCd shell and then run:
wget https://www.unrealircd.org/patches/halfop-patcher && sh ./halfop-patcher

I don't trust the shell script, can I view the exact patch?
Yes, you can also download the recommended patch as a .tar.gz instead. It is available from https://www.unrealircd.org/patches/half ... her.tar.gz

UnrealIRCd 5 is here!

After more than 6 months of hard work, UnrealIRCd 5 is now our new "stable" branch. In particular I would like to thank Gottem and 'i' for their source code contributions and PeGaSuS and westor for testing releases.
When we transitioned from 3.2.x to 4.0.0 there were 175,000 lines of source code added/removed during 3 years of development. This time it was 120,000 lines in only 6 months, a major effort!

A short summary of release highlights is available here. The full release notes are available here. If you have some spare time, we recommended reading the full release notes (the new and changed sections, anyway) so you don't miss out on anything.

If you are upgrading from 4.x to 5.x, then it would be wise to read Upgrading from 4.x. In any case, be sure to upgrade your services package first! (if you use any). UnrealIRCd 5 is known to work with the following services:
  • anope (version 2.0.7 or higher) - with the "unreal4" protocol module
  • atheme (version 7.2.9 or higher) - with the "unreal4" protocol module
As always, you can download UnrealIRCd from https://www.unrealircd.org/

A word on third party modules

Because of the many code changes in UnrealIRCd 5, all 3rd party modules that work on UnrealIRCd 4 don't work on UnrealIRCd 5 out of the box. In fact, modules need quite a lot of changes to work with UnrealIRCd 5.

Gottem and k4be have updated and uploaded their 3rd party modules to unrealircd-contrib so *NIX users can now easily install them using the new Module manager.

UnrealIRCd 4 is still supported

UnrealIRCd 4 is now called "oldstable" and will be maintained until 31 December 2020 (major bugfixes only). After that date UnrealIRCd 4 is no longer supported. Admins are recommended to upgrade to UnrealIRCd 5 somewhere in the first half of 2020.

Post Reply