#Exploits are able to crash servers using Adonis

1 messages · Page 1 of 1 (latest)

rustic anchor
#

Exploits are spamming a randomly named Adonis remote; they get kicked with ":: Adonis :: nil", but for some reason (server working on the invalid request, exploitlogs, etc?) the server gets significantly slower and often crashes. Since Adonis only kicks the exploiter, they can teleport back in and resume spamming. I can share the exact script if requested.

Edit: typo

bleak comet
#

This is already fixed but a new version of Adonis has not been updated

vale zealot
halcyon belfry
#

I’ll cherry-pick it to release

#

Don’t think the bots up to auto upload so I’ll have to upload the module myself.

rustic anchor
#

👍

vale zealot
#

@halcyon belfry thank you

#

Will you go on a date with me?

vale zealot
#

You can be the eGirl and I'll be the morbidly obese discord mod.

#

We can go surfing on the web, hang out at an NFT diner.

#

Go home, I'll sleep in my bariatric bed while you lay on the concrete corridor leading to my flat.

#

Wake up and eat crypto for breakfast.

fleet night
#

Forgot to set the server stuff back up for it

#

Will do tomorrow after work

hidden bolt
#

Can indeed confirm this. They fire the unprotected event in ReplicatedStorage, or the remote function parented to it, causes heavy crash

high comet
fleet night
#

@halcyon belfry were you able to manually push the fix

#

Also the upload server should be back up

#

Assuming pm2 cooperates and is actually running it like it says it is

halcyon belfry
#

If it’s back up then I can push it yes

willow cairn
ember eagle
#

For anyone looking for an anti for this, heres a quick one i made below:

task.wait(5)

print("anti crash loaded")

for i, v in pairs(game:GetService("ReplicatedStorage"):GetDescendants()) do
    if v:IsA("RemoteFunction") and v.Parent:IsA("RemoteEvent") and v.Name == "__FUNCTION" then
        v.Parent.OnServerEvent:Connect(function(Player, ArgA, ArgB)
            if not ArgA or (not ArgB) then
                Player:Kick("Detected crashing.")
            end
        end)
    end
end

theres not as much kick delay so it disconnects them before they can overly spam the remote

#

i highly suggest <@&940468990151647253> release the new version soon because this is still an ongoing bug (this just happened in my game today)

bleak comet
#

I can write a quick fix for this

#

(A plugin)

bleak comet
#

To fix exploiters crashing your server via anticheat notifications add a modulescript named Server-AnticheatCrashFix under Adonis_Loader > Config > Plugins with the following code:

fleet night
#

which would then update the module

#

seems unwise to assume a module update means it was fixed

#

what even is the actual issue happening here to cause the crash I thought we already had stuff to prevent that

bleak comet
#

But you can make a temporary release with that plugin

fleet night
#

might be able to just cherry pick

#

assuming everything doesn't implode

bleak comet
#

Hard to because the anti files have been updated.

#

Also you'd need to mark the relase in github and in changelogs

bleak comet
fleet night
#

right but what was actually causing the issue

#

the Detected function for the anti?

bleak comet
#

For some reason Roblox doesnt instantly kick

#

No idea why

#

That allows it to make multiple notifications

#

Ender first found the bug but it got leaked

fleet night
#

WHAT IS THE ACTUAL BUG THOOOOO

#

it's not clear just looking at the plugin

bleak comet
#

Actually ender didnt find it but they showcased it

fleet night
#

like what are they actually doing to cause the thing

#

or what's responsible for letting it happen

bleak comet
# fleet night WHAT IS THE ACTUAL BUG THOOOOO

Basically. Roblox doesn't instantly kick the player when calling kick. Meaning the player can run the remote many times before being kicked. Therefor they can make a lot of notifications in that timeframe

#

The plugin makes it so that it doesn't produce notifications if the player has alraedy been kicked

fleet night
#

gotcha so basically if they get kicked immediately blacklist them from communication

bleak comet
#

It just rekicks them without a notif

bleak comet
#

Roblox top security momento again

fleet night
#

if it was handled in the nightly the same way it's in the plugin, it's going to need some changes since it doesn't do anything to clear a player from the kick list after they get actually kicked

#

better solution might be to just immediately mark a player as "kicked" when we kick/crash them and ignore all further communication from the client/etc

#

same in the anti detected method

fleet night
#

does it?

bleak comet
#

It should, because it's a weak table

fleet night
#

gotcha

bleak comet
#

Expect the nightly uses an array and the plugin a dictionary, but both use weak tables

#

I'm not sure about the nightly though because Adonis wraps them so they might not be GC'd. But if so then theres a bigger issue because it affects everything in Adonis ¯_(ツ)_/¯

fleet night
#

stop this

bleak comet
#

?

#

Oh wait there is a debounce

fleet night
#

this is one of those situations where just because we can doesn't mean we should every single time

#

makes the variables harder to read

#

unnecessary unless you're doing a bunch of declarations all at once

#

qq

bleak comet
#

Oh the debounce is not in release

#

So thats why

#

So we basically already had a fix in the debounce thing

#

Well I guess it's better to make a better fix because exploiters can bypass the debounce (I mean it's fixed by the kickedPlayers check but whatever)

#

The debounce is only for UX

fleet night
#

working rn, pushed changes to it to the nightly

#

someone check if the issue is still fixed on the nightly and I'll pull the changes over to release

#

at some point we can do a full release for whatever is currently on the nightly but not right this second cuz I have to do my actual job

bleak comet
#

The issue was already fixes in nightly

fleet night
#

I don't like the way it was handled so I made minor changes to it and made sure it clears them on network disconnect

bleak comet
#

But when you make a small bug fix remember to add to changelog and github releases

fleet night
#

so we shouldn't need to worry about whether or not GC works correctly for it

#

it will still use the GC on key if it can but it will also clear it via the client connection tracking stuff when the network client gets removed server-side

#

going to also add a quick change to make sure the player connections get tracked

bleak comet
fleet night
#

it does but it's loose at the moment, doesn't ensure the player is actually there to check

#

like

bleak comet
#

Like RAKNET?

#

The "UNKNOWN" player connected?

fleet night
#

basically it was only tracking the player connection if it could find a player for an added network connection

fleet night
#

but didn't do anything once a player joined to check if they had a tracked connection and if not line them up to their con

#

so I'm going to add that so there's no unaccounted for connections

bleak comet
#

I mean you should still keep the RAKNET tracking because it's usefull to see when there are RAKNET connections which don't have a player instance

#

To see if people spy on the server

fleet night
#

well this would only matter if they have a player instance created after the network added event is fired

bleak comet
#

But you should still keep the log "UNKNOWN player connected"

fleet night
#

so when the player added stuff fires it will doublecheck connections to see if they have one and it isn't being tracked cuz they didn't have a player instance yet

#

it would

#

it's not going to affect that

bleak comet
#

Oh ok

fleet night
#

pushed

bleak comet
#

Update changelog

fleet night
#

small but needed change to ensure the other stuff works correctly, else some player connections might not be matched to the player instance

#

no

bleak comet
#

Ok

#

Should we add multithreading to Adonis 2.0?

fleet night
#

the changelog has pretty much become pain

#

also does it even really need it

bleak comet
fleet night
#

that's what I want to do

#

just base it on github changes

bleak comet
#

Just like store the last pull merged, then have some github workflow generate it

fleet night
#

yeah

bleak comet
#

Although it doesn't add maintainer git commits to the changelog automatically

#

Everything would have to be a pull for it to add everything

#

Also the version variable inside loader doesn't update automatically

fleet night
#

we could probably get something going where it just grabs all commits since last release and tosses them in the changelog or something

#

dunno

bleak comet
#

It would make it gigabytes large

fleet night
#

wouldn't be that big

bleak comet
#

Just like take all of the merged pulls

fleet night
#

text doesn't take up that much space

bleak comet
#

And then manually add the maintainer commits (as there aren't that many)

fleet night
#

wouldn't need to if we can grab all commits

#

like regardless of who pushed them up

bleak comet
#

Oh wait. Take the merged pulls. And then put the git commits which are not related to any pull and paste them there (automatically)

fleet night
#

overthinking probably

#

anyway

#

pushed the thing

#

will try a cherry pick over to release in a bit

#

need to go back to work

#

if I can't cherry pick I'll just rewrite it on release

bleak comet
#

Nightly is fine. Expect there is one issue. My soundservice change accidentally broke the Audiolib which brokes the Adonis audio player.

#

But there are no other issues

fleet night
#

n i ce

#

lol

#

ok

#

gonna try pulling over the crash fix then

#

might need to rewrite it but meh

bleak comet
#

But there are a lot of pulls which need to be merged so better to not release nightly yet

#

And this adds selene linting to it (and fixes lint errors)

fleet night
#

thought I merged that one

bleak comet
#

It was a different one

past tree
#

I already fixed the selene GitHub action

bleak comet
#

Not in 2.0

past tree
#

Ohh

#

I'll have to look at it there yea

bleak comet
#

One though I decided to do though with it

#

Is to disable lint for shadowing and unsused variables

#

They are really not necessary lints and Adonis has like 30000 of them in 2.0 so it's impossible to remove

fleet night
#

stupid build server died again

#

annoying

#

fixed

#

release action running now

#

should hopefully work, the nightly upload worked

bleak comet
#

How would the generatin of the loader version num be fixed though?

#

Like

#

Automated

fleet night
#

base it on the last release tag

#

annnyyywaaayyy

#

can someone check if release is working & the crashing issue is fixed

bleak comet
#

Ok

#

I tested and I think it's fixed

#

Not sure because I dont have 2 players though

fleet night
#

Good enough

#

As long as things aren't breaking I guess we'll just wait a few hours and see if there's any bug reports or something

rustic anchor
#

finalie fix🥶🥶🥶 thank🙏🙏🤌

gilded vale
#

The crash exploit is still going on

bleak comet
#

Try to see if adding a modulescript named Server-AnticheatCrashFix under Adonis_Loader > Config > Plugins with the code \/ fixes it