From c2b242762221e7ec71dfab202482593682e42643 Mon Sep 17 00:00:00 2001 From: Allink <44676012+allinkdev@users.noreply.github.com> Date: Sun, 10 Jul 2022 03:21:35 +0100 Subject: [PATCH] Patch 'sploits (1.17.1) (#33) * Prevent invalid container events * Do not attempt to cast items to recipes --- ...037-Prevent-invalid-container-events.patch | 37 +++++++++++++++++++ ...not-attempt-to-cast-items-to-recipes.patch | 24 ++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 patches/server/0037-Prevent-invalid-container-events.patch create mode 100644 patches/server/0038-Do-not-attempt-to-cast-items-to-recipes.patch diff --git a/patches/server/0037-Prevent-invalid-container-events.patch b/patches/server/0037-Prevent-invalid-container-events.patch new file mode 100644 index 0000000..6f6d1de --- /dev/null +++ b/patches/server/0037-Prevent-invalid-container-events.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Allink +Date: Sun, 10 Jul 2022 02:20:16 +0100 +Subject: [PATCH] Prevent invalid container events + + +diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +index ca595abe940463a62da033c7082c868c4c4b28d8..6f43eec3490dd44d0f680977710f1d65dc6fc3b2 100644 +--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java ++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +@@ -24,6 +24,8 @@ import java.util.function.UnaryOperator; + import java.util.stream.Collectors; + import java.util.stream.Stream; + import javax.annotation.Nullable; ++ ++import net.kyori.adventure.text.format.NamedTextColor; + import net.minecraft.ChatFormatting; + import net.minecraft.CrashReport; + import net.minecraft.CrashReportCategory; +@@ -2782,6 +2784,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser + } + + if (packet.getClickType() != net.minecraft.world.inventory.ClickType.QUICK_CRAFT) { ++ // Scissors start - Do not call events when the slot/button number is invalid ++ if(packet.getSlotNum() > 45) ++ { ++ this.getCraftPlayer().kick( ++ net.kyori.adventure.text.Component.text("Invalid container click slot (Hacking?)") ++ .color(NamedTextColor.RED) ++ ); ++ return; ++ } ++ // Scissors end ++ + if (click == ClickType.NUMBER_KEY) { + event = new InventoryClickEvent(inventory, type, packet.getSlotNum(), click, action, packet.getButtonNum()); + } else { diff --git a/patches/server/0038-Do-not-attempt-to-cast-items-to-recipes.patch b/patches/server/0038-Do-not-attempt-to-cast-items-to-recipes.patch new file mode 100644 index 0000000..652e444 --- /dev/null +++ b/patches/server/0038-Do-not-attempt-to-cast-items-to-recipes.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Allink +Date: Sun, 10 Jul 2022 02:25:28 +0100 +Subject: [PATCH] Do not attempt to cast items to recipes + + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +index 73e95e631ac622de897775399d205de66c4d8ff8..c3fd536cebb2f8664f9bf86d322f88094677d2b5 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +@@ -629,6 +629,13 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit + Entry entry = (Entry) objectiterator.next(); + + worldserver.getRecipeManager().byKey((ResourceLocation) entry.getKey()).ifPresent((irecipe) -> { ++ // Scissors start - Do not attempt to cast items to recipes ++ if (!(irecipe instanceof AbstractCookingRecipe)) ++ { ++ return; ++ } ++ // Scissors end ++ + list.add(irecipe); + AbstractFurnaceBlockEntity.createExperience(worldserver, vec3d, entry.getIntValue(), ((AbstractCookingRecipe) irecipe).getExperience(), blockposition, entityplayer, itemstack, amount); // CraftBukkit + });