Updated-NoCheatPlus / NoCheatPlus

Anti-cheating plugin for Minecraft (1.5-1.20, Bukkit/Spigot)
https://ci.codemc.io/job/Updated-NoCheatPlus/job/Updated-NoCheatPlus/
GNU General Public License v3.0
482 stars 100 forks source link

[Bypass] Passable BlockChangeTracker + LabyMod #155

Closed roccodev closed 2 years ago

roccodev commented 3 years ago

Full output of /ncp version

[03:09:15 INFO]: »Version information«
[03:09:15 INFO]: Server:
[03:09:15 INFO]: git-PaperSpigot-"09d15d8" ~MC: 1.8.8~
[03:09:15 INFO]: Detected: 1.8.8
[03:09:15 INFO]: NoCheatPlus:
[03:09:15 INFO]: Plugin: 3.17-SNAPSHOT-Updated-b116
[03:09:15 INFO]: MCAccess: 1.8.4-1.8.8 / Spigot-CB-1.8_R3
[03:09:15 INFO]: Features:
[03:09:15 INFO]: blocks: BlocksMC1_4, BlocksMC1_5, BlocksMC1_6_1, BlocksMC1_7_2, BlocksMC1_8
[03:09:15 INFO]: checks: FastConsume, Gutenberg, AttackFrequency, FlyingFrequency, KeepAliveFrequency
[03:09:15 INFO]: defaults: pvpKnockBackVelocity
[03:09:15 INFO]: packet-listeners: UseEntityAdapter, MovingFlying, OutgoingPosition, KeepAliveAdapter, SoundDistance, WrongTurnAdapter, CatchAllAdapter, Fight
[03:09:15 INFO]: Hooks:
AllViolations~NCP~ 1.0, ViolationFrequency~NCP~ 1.0
[03:09:15 INFO]: »Related Plugins«
[03:09:15 INFO]: ProtocolLib v4.5.1, ViaVersion v4.0.1

Describe the issue

When the block change tracker is enabled, you can bypass the phase check by being inside of a block and holding right-click while breaking. You may need certain client settings to reproduce consistently.

How to reproduce the issue

Make sure compatibility.blocks.changetracker.enabled is true.

I highly recommend using LabyMod to reproduce this issue. Make sure that the "Blockhit" standalone setting (not the one in 1.7 animations) is enabled. With LabyMod (and that setting enabled) I was able to reproduce this 100%. I was still able to reproduce without, but only half the times and only on my local server (it's probably ping-based).

Place a trapdoor like in the video, open it, walk towards the edge, and close it.
Now, if you try breaking the block below to clip through it won't work (intended behaviour). To reproduce the issue you need to hold right-click while breaking the block.

If I don't hold right-click, it flags for Passable. Otherwise, it's like it never happened, no Passable VL is assigned to me.
It still works if I remove the block below. (i.e. I clip through the ground)

Video: https://www.youtube.com/watch?v=rWLFOg5gHCM

Any possible config options changed or plugins that may cause interference?

Default config.