GeyserMC Bedrock DoS PoC + write-up (resource-pack flood and NBT allocation)
- Go 46.9%
- Java 41%
- Shell 12.1%
| docs | ||
| fuzzer | ||
| harness | ||
| poc | ||
| README.md | ||
GeyserMC DoS PoC + bug hunt
Proof-of-concept, patches, and write-up for denial-of-service bugs in GeyserMC (Bedrock -> Java bridge).
Tested revision: Geyser 2.11.3-SNAPSHOT, git 2808f7d2, Bedrock protocol 2193 (26.51).
Only run this against servers you own or are authorized to test.
Findings
| ID | Primitive | Kind | Fixed by |
|---|---|---|---|
| D1 | packsToSend unbounded growth (resource-pack flood) |
persistent; OOMs any heap | patch P1 |
| D2 | serverbound NBT used EncodingSettings.DEFAULT (512 MiB) |
transient | patch P3 (partial) |
| G1 | NBT LIST count uncapped (~50x amplification) |
transient | P3 bounds it |
| G2 | item NBT hits the arraySize*4 overflow |
transient | needs upstream NBT fix |
| R1 | chunkRequestQueue unbounded |
persistent | patch P2 |
| R2 | chunkIndex * CHUNK_SIZE overflow wedges the queue |
persistent | patch P2 |
Still unfixed: Cloudburst NBT arraySize*N 32-bit overflow (proposed upstream
patch in docs/patches/cloudburst-nbt-proposed.patch).
Layout
poc/ Go PoC (raw Bedrock client + pre-auth NBT payloads)
fuzzer/ Jazzer harness (NBT, packet decode, batch, NBT LIST)
harness/ Automated local Geyser test matrix
docs/ Reports, bug-hunt results, patches
See docs/geyser-exploits-explained.md and docs/geyser-bug-hunt-round2.md.