View Issue Details

IDProjectCategoryView StatusLast Update
0004901unrealircdpublic2017-03-20 16:26
ReporterNoMiausAssigned Tosyzop 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version4.0.12 
Summary0004901: Users IP shows up when /mode nick -t with force-rejoin option set
DescriptionUsers IP shows up instead of the last host user had when -t with set::allow-userhost-change "force-rejoin".
Steps To ReproduceStep 1. We set a host to the User via /chghost, his encrypted host is changed correctly to the one set, on this case 'example.example':

User (Ident@B04019F2.778031C9.182A60D6.IP) has parted. (Rejoining because of user@host change) «1 person»
User (Ident@example.example) has joined. «2 people»

Step 2. User wants to get his encrypted host back and types /mode nick -t, but Users IP shows up:

User (Ident@XXX.XXX.XXX.XXX) has parted. (Rejoining because of user@host change) «1 person»
User (Ident@B04019F2.778031C9.182A60D6.IP) has joined. «2 people»

It shouldn't shown the IP address but the host user currently had which is 'example.example'. The correct way should be:

User (Ident@example.example) has parted. (Rejoining because of user@host change) «1 person»
User (Ident@B04019F2.778031C9.182A60D6.IP) has joined. «2 people»

The same happens when User uses a vHost set by HostServ:

Step 1. User identifies to the nick and vHost is set by Services

User (Ident@B04019F2.778031C9.182A60D6.IP) has parted. (Rejoining because of user@host change) «1 people»
User (Ident@Some.Vhost.UserHas.Set) has joined. «2 people»

Step 2. User types /mode nick -t

User (Ident@XXX.XXX.XXX.XXX) has parted. (Rejoining because of user@host change) «1 person»
User (Ident@B04019F2.778031C9.182A60D6.IP) has joined. «2 people»

We should see the vhost user had, not the IP. The correct way should be:

User (Ident@Some.Vhost.UserHas.Set) has joined. «1 people»
User (Ident@B04019F2.778031C9.182A60D6.IP) has joined. «2 people»
Additional InformationAfter applying this commit https://github.com/unrealircd/unrealircd/commit/f3199ec5e519d74733b71341efc07a0b0fa54b98 and using the following options in the set block:
modes-on-connect "+x";
restrict-usermodes "x";
allow-userhost-change "force-rejoin";
TagsNo tags attached.
3rd party modules

Activities

syzop

2017-03-20 08:52

administrator   ~0019700

Thanks. I can confirm the issue with latest git. This is obviously not how it should be :D

syzop

2017-03-20 09:01

administrator   ~0019702

I couldn't decide whether to call it 'minor' or 'major'.. The mode -t is not well known and the effect as you describe is clearly visible. Going for 'major' for now. It shouldn't expose real host/IP.

In the past (and probably still) people were doing MODE -x and then MODE +x. That would expose their host/IP. The whole idea of this ability to -t (without the x) was that this would not happen. Turns out it doesn't help a bit if you use force-rejoin (and presumably same with quit+join). Grmpf.

Anyway, details...

I'll take a look later today at fixing the code. That'll be no issue. Thanks again for the report!

syzop

2017-03-20 16:26

administrator   ~0019703

Fixed, thanks!

Issue History

Date Modified Username Field Change
2017-03-19 22:49 NoMiaus New Issue
2017-03-20 08:50 syzop View Status public => private
2017-03-20 08:52 syzop Assigned To => syzop
2017-03-20 08:52 syzop Status new => confirmed
2017-03-20 08:52 syzop Note Added: 0019700
2017-03-20 08:52 syzop Severity minor => major
2017-03-20 09:01 syzop Note Added: 0019702
2017-03-20 16:19 syzop View Status private => public
2017-03-20 16:26 syzop Status confirmed => resolved
2017-03-20 16:26 syzop Resolution open => fixed
2017-03-20 16:26 syzop Fixed in Version => 4.0.12
2017-03-20 16:26 syzop Note Added: 0019703