Bungee - Spigot CustomPayloadFixer (BungeeCord & Bukkit/Spigot) 1.5.1

Fixes the recent exploit of CustomPayload packet that causes server to crash

  1. JustBlender submitted a new resource:

    CustomPayloadFixer - Fixes the recent exploit of CustomPayload packet that causes server to crash

    Read more about this resource...
     
    • Like Like x 1
  2. JustBlender updated CustomPayloadFixer with a new update entry:

    Update 1.1

    Read the rest of this update entry...
     
  3. JustBlender updated CustomPayloadFixer with a new update entry:

    Update 1.2 (comes with support of BungeeCord and more!)

    Read the rest of this update entry...
     
  4. I believe this is the placeholder for player? %name%

    If so, could you add this to your overview page so players can see the placeholder if they want to use the dispatch command feature!
     
    • Agree Agree x 1
  5. Yes, it is. I'm so sorry for not specifying the placeholder! Edited the configuration file and gonna update the overview page right now. Was in a bit of a rush while making these updates, forgot all the things to do! :(
     
    #5 JustBlender, Apr 24, 2017
    Last edited: Apr 24, 2017
  6. JustBlender updated CustomPayloadFixer (BungeeCord & Bukkit/Spigot) with a new update entry:

    A minor update for 1.2 version

    Read the rest of this update entry...
     
    • Like Like x 1
  7. baha no need to say sorry, your code saved my ass and 70 players :')
     
  8. @JustBlender seems like ATM code is only checking packets when player is flooding them? Why not check every packet?
     
  9. It does check for corrupted NBT tags all the time since update 1.2.
    There's no point to check every packet possible, this plugin only eliminates the issue of PacketPlayInCustomPayload. I do not know what the future holds for this plugin, maybe it could grow up to something bigger, to something, that could eliminate even more issues at once. We shall see, I will keep you guys updated.
     
    #9 JustBlender, Apr 24, 2017
    Last edited: Apr 24, 2017
  10. Yeah sorry, I mean all PacketPlayInCustomPayload packets :) last time I checked the code was only checking PacketPlayInCustomPayload packets if the players was sending a lot of them...

    https://github.com/justblender/Cust...u/justblender/payload/CustomPayloadFixer.java

    you can get rid of PACKET_USAGE and task then and just kick player on first invalid PacketPlayInCustomPayload packet :)

    Btw, good job ;)

    Edit: Nevermind actually I'm not sure if sending tons of "valid" packets wouldn't be an issue...
     
    #10 L4BORG, Apr 25, 2017
    Last edited: Apr 25, 2017
  11. I quite don't get you.. PACKET_USAGE is required for checking the last time packet was sent. This ensures that player cannot send more than 1 request to sign/update a book per set timespan (currently it's 20ms), so that server will not overload. Actually, I've found another bug that can be exploited in order to crash servers, fill up logs up to 1gb in a few minutes, and kick random people. Fix is incoming in a few minutes.

    Also, I should mention that I haven't updated my project on GitHub, code there is still from version 1.0.
     
  12. Is this needed on 1.8?
     
    • Like Like x 1
    • Like Like x 1
  13. Yes. A lot of versions of servers are vulnerable to this bug.
     
    • Like Like x 1
    • Funny Funny x 1
    • Informative Informative x 1
  14. Code (Text):
    02:20:26 [SEVERE] Apr 25, 2017 2:20:26 AM net.md_5.bungee.event.EventBus post
    WARNING: Error dispatching event PluginMessageEvent(super=TargetedEvent([email protected], receiver=pater174), cancelled=false, tag=REGISTER) to listener [email protected]
    java.lang.IllegalArgumentException: Server cannot have disconnect reason
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
        at net.md_5.bungee.ServerConnection.disconnect(ServerConnection.java:53)
        at ru.justblender.bungee.CustomPayloadFixer.onPacket(CustomPayloadFixer.java:80)
        at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19)
        at net.md_5.bungee.event.EventBus.post(EventBus.java:46)
        at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:377)
        at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:228)
        at net.md_5.bungee.protocol.packet.PluginMessage.handle(PluginMessage.java:61)
        at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:78)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017)
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
        at java.lang.Thread.run(Thread.java:745)

     
    is this normal?

    Happens on Bungee with Vanilla client on join and server switch. Maybe you should be catching only packets from Players?
     
    #15 L4BORG, Apr 25, 2017
    Last edited: Apr 25, 2017
    • Like Like x 1
    • Like Like x 1
  15. Thanks for the report. Please, try out new update and let me know if you still encounter this bug, cheers!
     
    • Like Like x 2
  16. How I can make this book overload to try test how plugin working on my own server?

    Sorry for my English :3
     
    • Agree Agree x 1
  17. Honestly, I don't know. Never tried to find one for myself to try out the plugin, had to ask my colleagues and people in the community to help me out.
     
    #19 JustBlender, Apr 26, 2017
    Last edited: Apr 26, 2017
    • Agree Agree x 1
  18. I'v got link. You are right. It's bad idea to publicate this link here and anywhere. Please remove your answer above
     
    • Funny Funny x 1