GitHub Advisoryadvisory · Packagist

GHSA-pqp3-8rrw-g8vm PocketMine-MP vulnerable to server crash with certain invalid JSON payloads in `LoginPacket` due to vulnerable dependency

HIGH Published 2023-06-06 Modified 2024-05-15 Official page ↗
Ecosystem
Packagist
Packages
pocketmine/pocketmine-mp
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Reviewed
2023-06-06

Affected packages

• Packagist pocketmine/pocketmine-mp: < 4.20.5 → fixed in 4.20.5 • Packagist pocketmine/pocketmine-mp: >= 4.21.0, < 4.21.1 → fixed in 4.21.1

Description

Impact An attacker could crash PocketMine-MP by sending malformed JSON in `LoginPacket`. This happened due to a bug in `netresearch/jsonmapper`. The library wasn't doing proper checks when mapping JSON arrays and objects onto scalar model properties such as strings. Patches The problem was fixed in a fork of JsonMapper in dktapps/JsonMapper@a31902a31f5b6fdb832f57c0e3a3f16a3b41c012. PocketMine-MP releases 4.20.5 and 4.21.1 have been released with the fix. Workarounds • Users of PocketMine-MP source installations may manually install the patched version of JsonMapper by backporting commit pmmp/PocketMine-MP@09668a37d66c6023685a948b7550c918620e98f2. • A plugin may also be able to workaround this issue by using `DataPacketReceiveEvent` to attempt detection of suspicious payloads. An `ErrorException` will be thrown in the crash case, which can be caught by plugins. References cweiske/jsonmapper#210

References