View Issue Details

IDProjectCategoryView StatusLast Update
0006668unrealircdpublic2026-11-15 01:51
Reportergh0st Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
Product Version6.2.7.1 
Summary0006668: [pmlist 3rd-party module] -persist whitelist entries match any logged-in user with that nick, allowing takeover
DescriptionThird-party module: pmlist v2.1.2 by Gottem (third/pmlist). Filing here since there is no separate tracker category; please pass on to the module author.

In match_pmentry(), a persistent entry (OPENPM <nick> -persist) matches any user who is logged in to services (any account) and whose nick matches the stored nick. When it matches, the stored UID is rewritten to the new user's UID, so the entry now belongs to them.

So another user, logged into a *different* account, can simply switch to the whitelisted nick (e.g. while the real owner is offline), PM the +P user, and keep the whitelist entry even after changing nick back.
Steps To Reproduce1. User A sets +P and runs OPENPM Friend -persist.
2. Friend (account 'friend') disconnects.
3. User C, logged in to services as account 'other', changes nick to Friend.
4. C can now PM A, and A's persistent entry now points to C's UID.
5. C changes nick to anything else and can still PM A.
Additional InformationSuggested fix (tested): store the services account name in the entry at OPENPM time and require acptr->user->account to match it (not just 'is logged in') before matching or rewriting the UID of a persistent entry.

Reported by gh0st ([email protected]).
3rd party modulespmlist v2.1.2 (Gottem)

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-11-15 01:51 gh0st New Issue