Exploiters crashing my servers, cause unknown

One thing I’d like to mention is that sometimes after entering a fresh server while he’s attacking my game, the server can crash immediately after starting up and the server scripts don’t even have time to load up in the developer console, nothing outputs, the developer console is completely frozen with almost no information in it. Even with the information in the console it doesn’t show anything abnormal with the server.

What I’m saying is that sometimes it doesn’t even take 3-5 seconds to crash, it can crash almost instantly after you join the server with no evidence of another player joining which makes this an even more bizarre issue.

Good ol’ weld replication

Theres also a much more mass/chunky way of doing this, but for obvious reasons I won’t explain on that.

2 Likes

I would like to keep this thread alive as this is currently still a problem.
Even as I type the servers are getting crashed instantly.

As someone who is personally working on this, the response time of the crashing to the server being created is too fast for any abuse to be happening on the game itself that could be added in by user error or just a insecure remote as we already tried monitoring remotes for the crash. I would like to emphasize that the crashing doesn’t occur in private servers or when the game is private and they join the server, but the second the game is made public the response time of the crash from the newly created server when the game was private is about 1 second or less. I firmly believe this is some sort of API abuse, the only other possible cause is just a plain old DDoS attack which is unlikely. Emailing ROBLOX support proved no help asking us for “screenshots” of the issue like we already know what’s causing it.

It’s just a problem of figuring out which API is being abused, the people causing this are being very vague of what they’re using and the only thing they would response is a API surrounding UIs, of course we already scanned the game of all GetService for any oudated/unused services with no luck.

5 Likes

I’m also looking around for a fix on this. This same dude or group of dudes is just harassing community members and constantly crashing our servers. The game has had a much lower player count than usual over the past few days. Is there any reliable way to cut out a ton of spawned welds?
Exhibit A: What we believe to be the code used in the hack

3 Likes

You could do a child added on the status as according to that script that is where they put it.I don’t believe welds are put there naturally by roblox, so if one ends up in there it’s safe to assume they’re exploiting your game.

Couldn’t they just find out I’m only looking at Status and just put it in their LeftUpperArm or something?

2 Likes

I went ahead and wrote up a solution to the crashing problems.
I did some light testing with the weld spam crashing and so far it has worked. I haven’t tested the scenario of parenting the welds to someone else. But the IsDescendantOf check should cover that.

local Players = game:GetService("Players")

function GetPlayerByWeld(WeldObject)
	if not WeldObject then return nil end
	for i,v in pairs(Players:GetPlayers()) do
		if v.Character and WeldObject.Part0 and WeldObject.Part0:IsDescendantOf(v.Character) then
			return v
		end
	end
end

game.Workspace.DescendantAdded:Connect(function(Object)
	if Object:IsA("Weld") and Object.Name == "RightGrip" then
		local Player = GetPlayerByWeld(Object)
		local WeldCount = 0
		if Player then
			Object.AncestryChanged:Connect(function()
				if Object.Parent ~= nil and not Object:IsDescendantOf(Player.Character) then
					Player:Kick("Ancestry")
					Object:Destroy()
				end
			end)
			for i,v in pairs(Object.Parent:GetChildren()) do
				if v:IsA("Weld") and v.Name == "RightGrip" then
					local Owner = GetPlayerByWeld(v)
					if Owner and Owner == Player then
						WeldCount = WeldCount + 1
					end
				end
			end
			if WeldCount > 2 then
				Player:Kick("Max")
				Object:Destroy()
			end
		end
	end
end)
23 Likes

This is perfect! I’ll deploy this right away. Thank you so much for writing this up.

EDIT: Quick question @GetGlobals, would a hacker be able to simply change the name of the object from “RightGrip” to something else to bypass this? Or could a hacker potentially insert the RightGrip into another player to get them kicked instead?

2 Likes

No problem! I’m happy to help.

1 Like

No, for the replication to be possible the weld object has to be named RightGrip, I also have checked if they could manipulate the Part0 property but that doesn’t seem to replicate to the server. After applying this to a few games the crashing has ceased.

1 Like

Fairly certain a few of us already know who is doing it, and from what everyone has described here, they are using an emulated client + sending a packet to lag/crash the game server.

No DDoSing is occurring.

Unfortunately, there is no way to detect this unless the guy reports it. Roblox would have to do a server audit to figure out what could be causing it.

8 Likes

I already mentioned that it is unlikely and so far what you recommend is practically the only logical explanation to this. I don’t know how to convince the support team to do a server audit if they are just going to be immediately unconvinced of the issue. I would be guessing I/Radiakk would need to create a engine bug report?

I only know a few people who can do it, and I’ve seen them literally demonstrate it to me in game by shutting down a server without even appearing on the player list.

Not really surprising one of them would want to troll Club Iris.

I would be guessing I/Radiakk would need to create a engine bug report?

I have no idea. Possibly? You’d need the roblox engineers onboard to figure this out.

EDIT: I’m mainly speculating here, the OP said they can crash one player servers, don’t appear in player list, and nothing is in dev console. I am pretty sure I know who is doing it, but I could be entirely wrong.

1 Like

I’ll talk to Radiakk into making a engine bug post and hopefully it’ll pickup from here. What critical level do you think this could be set too?

EDIT: @Meta_data after talking to Radiakk, he already tried making a bug report Friday but only for it to get disapproved/denied.
I want ahead and told him to try again.

This doesn’t even fix the RightGrip server crasher at all.

I didn’t even have to do anything crafty to bypass this because it doesn’t detect it.

So was it weld replication? Have you actually figured out what’s still causing the crashes? Are you sure that you have eliminated the weld issue?

I already know about the exploit. It’s been reported in the bug bounty program and accepted so should be fixed soon.

1 Like

What exploit? The one having to do with RightGrip? That’s not how this is being done to OP’s game.

2 Likes

No, sending a few packets to crash an entire server. It’s a major vulnerability and should be fixed soon.

Hello, @jrmblox @plasma_node

I’ve released patches for both of these exploits already. Whenever either of these are detected my server removes the player and notifies me via webhook when it happens.

I’ve monitored servers before and after both of these exploits take place and to my knowledge the patch successfully stops the exploit from taking down the server.

I do not believe it is weld replication or chat flooding as both of these require a player to load in and start up the script, as previously mentioned no player instances are detected joining before the servers crash.

2 Likes