GitHub Advisoryadvisory · Packagist
GHSA-fm35-jgg3-3grx NaN/INF in serverbound movement packets can crash clients and servers
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
- Weaknesses
- CWE-20
- Reviewed
- 2021-05-21
Affected packages
• Packagist pocketmine/pocketmine-mp: < 3.18.1 → fixed in 3.18.1
Description
Impact
A malicious client may send a `MovePlayerPacket` to the server whose position or rotation contains NaN or INF. Since neither the server nor vanilla client handles this properly, a number of interesting side effects come into play.
• The server may crash in various ways if this exploit is used, because some mathematical operations on NaN/INF generate PHP warnings, which are converted into exceptions.
• Clients may not be able to see other clients who have a NaN/INF rotation.
• Clients may also crash in such cases.
Patches
A patch for this was included in the 3.18.1 release: https://github.com/pmmp/PocketMine-MP/commit/fb20bb38327b4c08ee3976640cd0dd547388a638
Workarounds
Workarounds could be implemented as plugins using `DataPacketReceiveEvent` to block any inbound movement packets containing bogus values.
For more information
If you have any questions or comments about this advisory:
• Open an issue in pmmp/PocketMine-MP
• Email us at [email protected]
Related
Weakness · CWE (1)
- CWE-20 Improper Input Validation weakness