pocketmine/raklib reliable-ordered queue size is unlimited, allowing a session to hog server memory
Package
Affected versions
>= 0.14.0, < 0.14.6
>= 0.15.0, < 0.15.1
Patched versions
0.14.6
0.15.1
Description
Published to the GitHub Advisory Database
Nov 15, 2023
Reviewed
Nov 15, 2023
Last updated
Nov 15, 2023
Impact
A client can send reliable-ordered packets 0, 2, 3, 4, 5 ... etc, and all the packets 2 and up will stay in the reliable-ordered queue until 1 arrives. A malicious client can exploit this to waste all available server memory by simply never sending the missing packet. Since the server doesn't make any effort to limit the size of the queue or detect this kind of abuse, this problem is easy to abuse.
Patches
This bug was fixed on the 0.14.x and 0.15.x release lines by 371190f5854372154d1b263cd2a10e658e92bebe.
Workarounds
No workaround is known.
References