kangarko / ChatControl-Red

Issue tracker and documentation for the next generation ChatControl Red, the most advanced chat management plugin.
49 stars 23 forks source link

Bungee: spy packet flood between bungee servers #346

Closed Malachiel87 closed 3 years ago

Malachiel87 commented 3 years ago

I have 4 server connected to bungee and i disabled the bungee feature on standard channel, and enabled the global bungee. for any reason i keeping to receive "spy packets" from these server that trigger antiexploit plugins and make the user kick Here is the log: image

And debug file debug (1).zip

kangarko commented 3 years ago

This is intended, all Spigot servers will receive spy packets to see if there are players spying who could receive them. You should tweak your exploit plugins or let me know how they interfere — what's the message the players are getting kicked from?

Malachiel87 commented 3 years ago

The message is for too many packets, and why spy over bungee is working, I have disabled the bungee feature on standard channel, so it should have spy over bungee disabled i think no?

kangarko commented 3 years ago

We still send the spy packet because the bungeecord network doesn't know that you've disabled that. We find that out when the packet is being read. I can hide this message to the next release though.

Malachiel87 commented 3 years ago

You mean hide the message about packet or cancel the message from bungee?

kangarko commented 3 years ago

I will hide the message about incoming packets and only make it visible when Debug is on [bungee]

Malachiel87 commented 3 years ago

yeah but is normal that it will be sended everytime a user speak in any server? i think should be blocked if bungee mode is disabled on the channel, since i don't am interested to read the chat on other server and it can lead to issues to user too: look what will happen https://gist.github.com/Malachiel87/976bd2ca1aee841e872f9a4525c8827b

kangarko commented 3 years ago

That is normal as I explained, we always send those spy packets and then we only send them to spying players on the incoming server.

kangarko commented 3 years ago

PacketPlayInCustomPayload is not sent by us, I am not sure if we even use it. You need to adjust your anti exploit plugin though.

Malachiel87 commented 3 years ago

As I remember also cmi have the same issue month ago it was spamming packet all over network and at end he fixed it it

kangarko commented 3 years ago

I understand, but as explained we need to send spy packet after every message because BungeeControl doesn't know if the server needs it or not. We determine this on Spigot.

Malachiel87 commented 3 years ago

i still got issue with packets, i keep to get kicked for packets, i am sure chatcontrol red is doing something anomal with these, i run 10 server with chatcontrol, everytime a guy talk it send the packet to all 10 server, just image 100 people and every servery server receive 100 packet per second. I never see a plugin act like this, please fix...

ElBananaa commented 3 years ago

i still got issue with packets, i keep to get kicked for packets, i am sure chatcontrol red is doing something anomal with these, i run 10 server with chatcontrol, everytime a guy talk it send the packet to all 10 server, just image 100 people and every servery server receive 100 packet per second. I never see a plugin act like this, please fix...

Hey! I'm reopening this issue so Kangarko could take a look at it.

Malachiel87 commented 3 years ago

I have multiple cases where people are kicked by exploitfixer and increased the limit packet to 35000, they are kicked in same moment, i use chatcontrol-red forward comand for alert my staff on bungee console about it, so is sure is doing something nasty with packets image image

This happen after some hours is a LOT worst with the version 10.1.12 (see screen it was kicking half server of 250 players) than 10.1.11

kangarko commented 3 years ago

At this point I ask you to disable ExploitFixer for now, I'll be investigating this however I see no other way right now of how we could transmit this information effectively. We can't use MySQL since it's too slow. It has to be sent over the plugin messaging channel for it to land to the receiver server the fastest. Correct me if I'm wrong.

Malachiel87 commented 3 years ago

Tell me if I can debug this, because as you can see I am not the only having the issue, btw try to see luckperms method for inspiration

ElBananaa commented 3 years ago

Tell me if I can debug this, because as you can see I am not the only having the issue, btw try to see luckperms method for inspiration

I used ExploitFixer for a while and it's a good plugin, but it was causing too many issues with my other plugins. I switched to IllegalStack (Which does the same thing), and I don't have any issues with any of my plugins anymore. You could try this plugin as an alternative.

kangarko commented 3 years ago

Try what Banana said please :) I never was a big fan of packet-limiting plugins since they tend to lead secondary issues like this one.

Malachiel87 commented 3 years ago

How illegal stack limit packets?.... Is a bug fixer for vanilla... Exploitfixer is totally another plugin that limit and patch some malicus exploit via fake book or other thing.... If you have a server I can show that

linsaftw commented 3 years ago

Hi, ExploitFixer has a debug option that enabling it shows all packets received in the last 5 seconds. It will help seeing which packet is spamming.

kangarko commented 3 years ago

I understand, but as of right now that conflicts with ChatControl Red. You can ask that developer to add an exception for the plugin channel "plugin:chcred"

Malachiel87 commented 3 years ago

Is not that you fix the issue, because sending many packets to user will cause issue like with ping and anticheat false positive, and other stuff with packets over all the servers.

kangarko commented 3 years ago

From our testing it did not seem to cause any problems with their ping. The client is fine sending thousands of packets every second, such as when player rotates their head etc. Minecraft protocol is built that. The extra packets we add only seem to cause false triggers with your plugin, so best would be that your plugin would have an exception for our plugin channel.

Malachiel87 commented 3 years ago

ah ah thing, i noticed on that day i do severed reload of chatcontrol in all server, and i see you fixed something with channels dubled on discord on each reload, i think was related to that. Reloading chatcontrol was also dubling spy packets so that why players got spammed with that, gonna retry upgrading again chatcontrol to latest version and tell you

Malachiel87 commented 3 years ago

happened again just with 1 server at new version, something is wrong with bungee i bet

Malachiel87 commented 3 years ago

exploitfixer debug: https://gist.github.com/Malachiel87/bfc1e45cb0026473a728bc60e265f464

Malachiel87 commented 3 years ago

I noticed it happen with all client version and keep this limit hit on packets will keep to increase after heach hour, it was 30k packets, i increased to 40k, fixed, and after some hours come to hit again 40k packet limit i am sure that i a chatcontrol leak

Malachiel87 commented 3 years ago

after increasing again, the kick from exploitfixer are gone but now is kicked by paperspigot Malachiel lost connection: Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException: Payload may not be larger than 32767 bytes,i have disabled bungeecord for now until it will be fixed

kangarko commented 3 years ago

I see, can you please ZIP me your ChatControl from the Spigot server where this is happening? Something may be over the capacity actually

kangarko commented 3 years ago

*The new one since the one in the top doesn't have anything suspicious

kangarko commented 3 years ago

And please put your Debug key to [bungee] and report me our console log before that happens

Yamamot00 commented 3 years ago

Hello, im going to show you my debug from my test server with only the Luckperms/Chatcontrol/essentials/Papi/ProtocolLib and Vault installed inside. (also with the Packet increased) Console log with Debug from Bungee on: https://pastebin.com/RRqr40dQ debug file from the Test server: debug.zip

if you want Kangarko i could send you the test server and Bungeecord with every plugin installed on private

Malachiel87 commented 3 years ago

any news about it? i can't actually debug because these flood caused too much issues to my server

kangarko commented 3 years ago

Alright looks like there's some data overflow on MySQL. I would need access to your MySQL database OR simply go to Export and send me the sql file...

You can send it to matej@mineacademy.org for privacy reasons and reference to this issue in the subject line. Thank you.

Screenshot 2021-01-12 at 09 18 11
kangarko commented 3 years ago

Was testing this a bit — found that if you had too many mails then packets could overflow. This is now fixed in the next version. Still if you will continue having issues follow instructions above please.

Yamamot00 commented 3 years ago

Was testing this a bit — found that if you had too many mails then packets could overflow. This is now fixed in the next version. Still if you will continue having issues follow instructions above please.

Really, that's some good news. Do you still need the database access? Is it me or Malachel that you mentioned? When I'm back from work i came back here to see if it was for me or not

kangarko commented 3 years ago

If you were getting the same error as Malachiel then you can send send me your database after you've tested the next version and the bug is still present. Thanks.