Just wanted to call this out. Not going to post how to do it, but there is a vulnerability where any user can add objects to a space rapidly. Based on the object/map size limitations, this could cause loading issues, potential map crashes, and lock users out of being able to place objects.
I’m not sure if I’ve run into this particular use case, but I have definitely seen some scary attack vectors via the console that seem to be accessible in any space. Those ones require a good deal of knowledge about Gather though to perform, but it sounds like the one you found is easy enough that regular users were able to perform it. Was it possible in any space regardless of user permissions? I’m assuming so, since you said any user can add objects. The fact that they can do so rapidly sounds even worse. If it doesn’t even require console knowledge, then I haven’t run into it yet. Hopefully @npfoss can take a look and patch it out soon. In the meantime, would it be possible to block via the API?
This one in particular does require “some” knowledge of the API and console, but as it can be done with one command, and by accident trying to do something else, I decided to bring it up.
There is not a great API solution, but there is a space settings change that will disable the issue. Unfortunately, it also disables a feature a lot of people like, and that Gather promotes regularly (being vague on purpose, I can DM you specifics)
Ah ok, then this sounds a lot like something I’ve run into too. I have a bit of a fix using the API, but it’s a pretty big pain to implement. Let’s discuss offline to see if we can package up the details to provide better for Nate and Gather, especially if we both found the same vulnerability. @npfoss, what would be the most helpful information for @Bill_Uncork-It and me to provide in order to support getting something like this patched up? Thanks!
hey yeah thanks for reporting this, and sorry for the slow response
want to untangle two things
- people being able to build without permission – you aren’t saying this, right? just that if you leave globalBuild or something on, then it’s easier for any guest to DoS a space?
it’s kinda easy to DoS a space by spamming actions
- this should not be possible to do accidentally in the normal course of using Gather
- this should not be possible even on purpose without the console for an untrusted guest (i.e. not mod/builder/owner)
- it is unfortunately not that hard with use of the console. there are some basic protections in place that help overall (like rate limits etc), but it’s definitely still possible if you have a sense for what operations are expensive. This has been a known, open TODO for a while but hasn’t actually ever caused problems as far as I know, so it keeps not being the top priority
Does that seem right? /Have you found cases that break that understanding of how things are now?
I am saying this. I could, right now, go into any space I had a URL for, with or without Global Build, and drop in objects of my choosing (provided one specific setting is enabled). At a very rapid rate, too. Without knowing what the space data size limits are, I cannot predict how easy it would be to overload a space, but knowing the size is limited, it is definitely possible (even just filling a space with a million blank tiles).
This appears to be protected by rate limiting/user permissions. Some actions are definitely less optimal than others, but the impact is not very visible unless someone really knows what they are doing.
- thanks for the DM
- ok cool, I’ll leave it at that for now then. but let me know if you see people exploiting it
Do I understand correctly that this will not be fixed and that we should report if we notice that people are exploiting it?
I believe he is saying that they are not going to try and establish a way of limiting console actions. The other thing will hopefully get fixed.
Looking forward to hear clearification from @npfoss .
I’m not going to do anything extra right now to prevent DoSing via console, unless we see signs of it being a problem. (We’ve already had basic protections in place for a long time and it seems like that’s been enough so far)
What we will fix asap is any instance where people can do stuff via console that they shouldn’t be allowed to (but this should be impossible)
Can you please describe in more detail what will no longer be possible via console in the future? I want to know if one of our scripts doesn’t work anymore after that.
I don’t currently plan to remove anything. I just mean if there happened to be a command like
game.kickEveryone_UNSAFE() that you could run without being a mod, then I’d fix that asap (by requiring you to be a mod for it to work)
Hi @npfoss , just a kind reminder that this Vulnerability is still there and that there are even people on social media Brag about it proudly and joke about GT while spamming big conferences with objects.
Yep we saw https://twitter.com/zack_overflow/status/1619398878327107585 – a fix is going out today
Thank you very much