WS-2022-0110
Published:May 15, 2026
Updated:May 15, 2026
Impact "LoginPacket" uses "BinaryStream->getLInt()" to read the lengths of JSON payloads it wants to decode. Unfortunately, "BinaryStream->getLInt()" returns a signed integer, meaning that a malicious client can craft a packet with a large uint32 value for payload buffer size (which would be interpreted as a negative signed int32), causing "BinaryStream->get()" to throw an exception. In the context of PocketMine-MP, this leads to a server crash when the vulnerability is exploited. Patches e3fce7632b94e83fd6a518a87dcaf6a11681c4ac Workarounds This can be worked around by registering a custom "LoginPacket" implementation into "PacketPool" which overrides "this code" (https://github.com/pmmp/BedrockProtocol/blob/47532c95ea37d5f0365b23f734d70d943ff95295/src/LoginPacket.php#L54) to patch it. For more information * Email us at "team@pmmp.io" (mailto:team@pmmp.io)
Related Resources (4)
Do you need more information?
Contact UsCVSS v4
Base Score:
8.7
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
NONE
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
7.5
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Weakness Type (CWE)
Buffer Underwrite ('Buffer Underflow')