A non-operator with the nick "mynick" attempts to register a fingerprint to their authenticated account.
/msg NickServ cert add mynick <fingerprint>
NickServ responds with "Insufficient privileges" because they've accidentally invoked the operator syntax (to action other accounts).
This patch allows the user to add the fingerprint if the client's account is identical to the target account.
--
Note about implementation, this does add an extra mutex lock and unlock by calling client.Account() vs modifying the conditional logic below, but as this is security sensitive and an infrequent operation, I took the easy route of setting the zero value on target.
A non-operator with the nick "mynick" attempts to register a fingerprint to their authenticated account.
/msg NickServ cert add mynick <fingerprint>
NickServ responds with "Insufficient privileges" because they've accidentally invoked the operator syntax (to action other accounts).
This patch allows the user to add the fingerprint if the client's account is identical to the target account.
--
Note about implementation, this does add an extra mutex lock and unlock by calling
client.Account()
vs modifying the conditional logic below, but as this is security sensitive and an infrequent operation, I took the easy route of setting the zero value ontarget
.