VDB
Sign up
HIGH7.5

GHSA-pqp3-8rrw-g8vm

PocketMine-MP vulnerable to server crash with certain invalid JSON payloads in `LoginPacket` due to vulnerable dependency

Quick fix

GHSA-pqp3-8rrw-g8vm — pocketmine/pocketmine-mp: upgrade to the fixed version with the command below.

composer require pocketmine/pocketmine-mp:^4.20.5

Details

### Impact An attacker could crash PocketMine-MP by sending malformed JSON in `LoginPacket`.

This happened due to a bug in [`netresearch/jsonmapper`](https://github.com/cweiske/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

Are you affected?

Enter the version of the package you're using.

Affected packages

Packagist/pocketmine/pocketmine-mp
Introduced in: 0Fixed in: 4.20.5
Fixcomposer require pocketmine/pocketmine-mp:^4.20.5
Packagist/pocketmine/pocketmine-mp
Introduced in: 4.21.0Fixed in: 4.21.1
Fixcomposer require pocketmine/pocketmine-mp:^4.21.1

References