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

Restricting client commands breaks vanilla compatibility. #214

Open
GeckoEidechse opened this issue Jun 27, 2022 · 5 comments
Open

Restricting client commands breaks vanilla compatibility. #214

GeckoEidechse opened this issue Jun 27, 2022 · 5 comments
Labels
bug Something isn't working regression Regression reproducible Bug has been successfully reproduced by another user

Comments

@GeckoEidechse
Copy link
Member

Unlike vanilla, gameservers in Northstar are considered "untrusted". As such we have to vet commands sent to client by server.

When fixed our previously broken client command restriction with #210 we also broke vanilla compatibility again.

In particular it breaks matchmaking as (it seems that) when finding a match the server sends a client command to client that causes it to connect to that game server.

Adding -norestrictservercommands should allow matchmaking in vanilla at the cost of reduced security due to allowing server to run commands on client.

If you're using Northstar to play on vanilla and Northstar servers, it's recommended to deleting -norestrictservercommands when playing on Northstar servers.

@GeckoEidechse GeckoEidechse added bug Something isn't working regression Regression reproducible Bug has been successfully reproduced by another user labels Jun 27, 2022
@GeckoEidechse GeckoEidechse pinned this issue Jun 27, 2022
@rolelessweapon
Copy link

It appears this could be due to the "migrateme" command being blocked, which I've fixed in my PR. #189

@GeckoEidechse
Copy link
Member Author

I'm not sure if we do want to allow it though. Cause it could allow an attacker to move you onto a different server. That being said, if an attacker is able to execute that command they likely already have some way of getting ClientCommands to run on your client.

@rolelessweapon
Copy link

Couldn't they just run connect?

@GeckoEidechse
Copy link
Member Author

Couldn't they just run connect?

Nope, we block that.

@rolelessweapon
Copy link

Actually, it appears migrateme is forwarded from the client to the server.
So for some reason, the server (or maybe some internal code in the client that passes the wrong argume to CBuf_AddText) generates the migrateme command, executes it on the client, which then gets forwarded back to the server.
Migrateme looks completely harmless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working regression Regression reproducible Bug has been successfully reproduced by another user
Projects
Status: No status
Development

No branches or pull requests

2 participants