From d9f1016bd57d50f5052bb90222894adb40fd256c Mon Sep 17 00:00:00 2001 From: Jones <73846784+jonesdevelopment@users.noreply.github.com> Date: Fri, 14 Mar 2025 10:26:59 -0500 Subject: [PATCH] Validate uncompressed packet size (#1527) * Validate uncompressed packet size * Fix debug using incorrect value --- .../proxy/protocol/netty/MinecraftCompressDecoder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java index 6e7fb4d4..5321b6ac 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/netty/MinecraftCompressDecoder.java @@ -52,6 +52,9 @@ public class MinecraftCompressDecoder extends MessageToMessageDecoder { protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { int claimedUncompressedSize = ProtocolUtils.readVarInt(in); if (claimedUncompressedSize == 0) { + int actualUncompressedSize = in.readableBytes(); + checkFrame(actualUncompressedSize < threshold, "Actual uncompressed size %s is greater than" + + " threshold %s", actualUncompressedSize, threshold); // This message is not compressed. out.add(in.retain()); return;