Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secure admin access #534

Open
kj7rrv opened this issue Jan 5, 2020 · 7 comments
Open

Secure admin access #534

kj7rrv opened this issue Jan 5, 2020 · 7 comments
Labels
bug crucial Things that are crucial (must be fixed within a couple days) modules refactoring security flaw Security or DoS bugs, should always go with bug

Comments

@kj7rrv
Copy link

kj7rrv commented Jan 5, 2020

This is a pretty major security bug. Anyone can become admin if one of the admins if offline.
Suppose firespeaker (@jonorthwash), who is an admin, is offline. Anyone (literally ANYONE) can take over admin access:

/nick firespeaker
/msg begiak .something

NickServ enforce mode is not effective, because you can do damage in under 30 seconds, especially with an attack bot. Simply putting the following text into netcat connected to freenode port 6667 is an exploit (using the example of shutting down the git server and giving me a greeting):

USER begiak-attacker 0 * :Begiak Attacker
NICK firespeaker
PRIVMSG begiak :.gitserver stop
PRIVMSG begiak :.greeting add scoopgracie b3g1ak 1s pwn3d

We should ask NickServ if the person is identified before allowing admin access. The "Last seen" field says "now" if the person is online and identified.

I also suggest that we create a new method, phenny.is_admin(nick), to check if nick is an adm
in. This would replace modules checking the admin list. Modules using a method would allow us to replace the admin-rights system quite easily.

@sushain97
Copy link
Member

That's why admins should have registered nicks.

@kj7rrv
Copy link
Author

kj7rrv commented Jan 14, 2020

I still think this needs a fix.

@kj7rrv
Copy link
Author

kj7rrv commented Jan 22, 2020

There has been some discussion on IRC, and we need to discuss solutions. We need to

  1. Do something with NickServ to add protection,
  2. Create a dedicated admin nick and not use it in public channels to keep it a secret, or
  3. Use a different mechanism altogether.

@wei2912
Copy link
Member

wei2912 commented Jan 22, 2020 via email

@kj7rrv
Copy link
Author

kj7rrv commented Jan 22, 2020

I think NickServ verification is a good idea.

@kj7rrv
Copy link
Author

kj7rrv commented Jan 22, 2020

Another thought is to replace all admin commands with a Web panel.

@kj7rrv
Copy link
Author

kj7rrv commented Jan 22, 2020

Or, only let admin commands work in a special channel in which only admins are invited. This would have the added benefit of letting admins other than those with server access grant/revoke adminship.

@jonorthwash jonorthwash added the security flaw Security or DoS bugs, should always go with bug label Feb 3, 2020
@kj7rrv kj7rrv changed the title Anyone can become admin Secure admin access Feb 27, 2020
@kj7rrv kj7rrv added crucial Things that are crucial (must be fixed within a couple days) bug modules refactoring labels Feb 27, 2020
@kj7rrv kj7rrv pinned this issue Feb 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug crucial Things that are crucial (must be fixed within a couple days) modules refactoring security flaw Security or DoS bugs, should always go with bug
Projects
None yet
Development

No branches or pull requests

4 participants