Note: This is NOT a duplicate of MC-9686 which is a client bug, I am describing a Server issue + My issue works in Survival mode, too.
Reproduce
- Join Server as non-op (works best with slow connection)
- Locate Spawn area
- Place block¹ on the Spawn border
- Quickly place another block² on that block¹
- Server will not accept block¹ and tell the Client to remove it
- Server will accept block² although it has technically been placed on air
Result
The problem
when the client places a block in a restricted area and per lag it doesn't immediately get removed, you can place a block on that block (because the client still thinks it is there) even though there isn't a block to place it on. [...] it means that with a hacked client you can place a block anywhere regardless of wether there is a block to place it on.
Thanks Ezekiel for clarification
Fix
Do not allow to place Blocks on air
Leave a comment if you need more details