First published: Thu Sep 14 2023(Updated: )
### Impact An attacker could crash PocketMine-MP by sending malformed JSON in `LoginPacket`. This happened due to the particular handling of NULL types in the json mapper which accepts NULL type values in typed arrays which PocketMine-MP did not expect. Code processing arrays in the JSON data could then crash due to unexpected `NULL` elements. ### Patches This problem was fixed in 5.3.1 and 4.23.1 by updating JsonMapper to include the following commit: pmmp/netresearch-jsonmapper@4f90e8dab1c9df331fad7d3d89823404e882668c An upstream patch for this issue was proposed via https://github.com/cweiske/jsonmapper/pull/211; however, as of 2024-05-15, the patch has not been accepted upstream due to debate about how to deal with the behavior. For now, a fork of JsonMapper is used by PocketMine-MP to workaround the issue. ### Workarounds A plugin may handle `DataPacketReceiveEvent` for `LoginPacket` and check that none of the input arrays contain `NULL` where it's not expected, but this is rather cumbersome. ### References Proposed upstream patch for a behavior change: https://github.com/cweiske/jsonmapper/pull/211
Affected Software | Affected Version | How to fix |
---|---|---|
composer/pocketmine/pocketmine-mp | <=4.23.0 | 4.23.1 |
composer/pocketmine/pocketmine-mp | >=5.0.0<=5.3.0 | 5.3.1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
The severity of GHSA-92jh-gwch-jq38 is high with a CVSS score of 7.5.
An attacker can exploit GHSA-92jh-gwch-jq38 by sending malformed JWT JSON in `LoginPacket` to crash the server.
The impacted software for GHSA-92jh-gwch-jq38 is `pocketmine/pocketmine-mp`.
The recommended remedy for GHSA-92jh-gwch-jq38 is to update `pocketmine/pocketmine-mp` to version 4.23.1 or 5.3.1.
You can find more information about GHSA-92jh-gwch-jq38 in the [GitHub Security Advisory](https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-92jh-gwch-jq38).