Buffer length underflow in LoginPacket causing unchecked exceptions to be thrown
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
### 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 [[email protected]](mailto:[email protected])
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | pocketmine/bedrock-protocol (Packagist) | before 8.0.2 | 8.0.2 | Patch available | GHSA-5jfw-35xp-5m42 |
- pocketmine/bedrock-protocol (Packagist) Vendor— Affected before 8.0.2 Fixed in 8.0.2 Patch available GHSA-5jfw-35xp-5m42
Remediation
- Fix · GHSA-5jfw-35xp-5m42 pocketmine/bedrock-protocol (Packagist) Fixed in 8.0.2 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-5jfw-35xp-5m42
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences