GitHub Advisoryadvisory · Packagist
GHSA-wjfq-88q2-r34j Unhandled exception when decoding form response JSON
HIGH
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
- 2022-01-21
Affected packages
• Packagist pocketmine/pocketmine-mp: >= 4.0.0, < 4.0.7 → fixed in 4.0.7
Description
Impact
When handling form responses from the client (`ModalFormResponsePacket`), the Minecraft Windows client may send weird JSON that `json_decode()` can't understand. A workaround for this is implemented in `InGamePacketHandler::stupid_json_decode()`.
An `InvalidArgumentException` is thrown by this function when it fails to fix an error found in the JSON, which is not caught by the caller. This leads to a server crash.
Patches
56fe71d939c38fe14e18a31a673a9331bcc0e4ca
Workarounds
A plugin may handle `DataPacketReceiveEvent`, capture `ModalFormResponsePacket` and run the provided JSON through `stupid_json_decode`.
Note that this requires copying the body of the function to a plugin, since the function is currently private.
For more information
If you have any questions or comments about this advisory:
• Email us at [email protected]