Every CVESearch/Get API key

GHSA-5jfw-35xp-5m42

Buffer length underflow in LoginPacket causing unchecked exceptions to be thrown

7.5 HighFix available

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 to patch it.

For more information

  • Email us at team@pmmp.io

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

What each source reports

GitHub Advisories Score used7.5

Buffer length underflow in LoginPacket causing unchecked exceptions to be thrown

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 to patch it.

For more information

  • Email us at team@pmmp.io
Record
GHSA-5jfw-35xp-5m42
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-124
Updated
2026-11-02
OSV7.5

Buffer length underflow in LoginPacket causing unchecked exceptions to be thrown

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 to patch it.

For more information

  • Email us at team@pmmp.io
Record
GHSA-5jfw-35xp-5m42
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-124
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
pocketmine/bedrock-protocol
Packagist
before 8.0.2
8.0.2
pocketmine/bedrock-protocol
Packagist
before 8.0.2, plus listed versions
1.0.0+bedrock-1.17.101.1.0+bedrock-1.17.102.0.0+bedrock-1.17.303.0.0+bedrock-1.17.403.0.1+bedrock-1.17.40
Show 17 moreShow less
3.0.2+bedrock-1.17.404.0.0+bedrock-1.17.404.0.1+bedrock-1.17.405.0.0+bedrock-1.17.405.1.0+bedrock-1.17.405.1.1+bedrock-1.17.405.1.2+bedrock-1.17.405.1.3+bedrock-1.17.406.0.0+bedrock-1.17.407.0.0+bedrock-1.18.07.1.0+bedrock-1.18.07.2.0+bedrock-1.18.07.3.0+bedrock-1.18.07.3.1+bedrock-1.18.08.0.0+bedrock-1.18.108.0.1+bedrock-1.18.108.0.2+bedrock-1.18.10
8.0.2

History

History
RecordedChangedSources
first indexedGitHub Advisories, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

GHSA-5jfw-35xp-5m42 is a high vulnerability (CVSS 7.5) in pocketmine/bedrock-protocol, published April 5, 2022. No source lists public exploit code. Fixed in pocketmine/bedrock-protocol 8.0.2.

References

MoveEnter Open