GHSA-92jh-gwch-jq38: PocketMine-MP server crash with certain invalid JSON payloads in `LoginPacket` due to dependency vulnerability (again)
7.5
CVSS Score
3.1
Basic Information
CVE ID
-
GHSA ID
EPSS Score
-
CWE
-
Published
9/14/2023
Updated
5/23/2024
KEV Status
No
Technology
PHP
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
pocketmine/pocketmine-mp | composer | >= 5.0.0, <= 5.3.0 | 5.3.1 |
pocketmine/pocketmine-mp | composer | <= 4.23.0 | 4.23.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from JsonMapper's array handling logic. The commit diff shows critical changes in mapArray()
where null acceptance in typed arrays was removed. Previously, when encountering a null value in JSON arrays (e.g., in LoginPacket
data), JsonMapper would insert null into PHP
arrays even when the target type declaration didn't allow null. This caused type inconsistencies that crashed PocketMine-MP
when processing these arrays. The mapArray
function is directly responsible for this type mapping behavior, and its pre-patch implementation matches the vulnerability description of accepting unexpected nulls in typed arrays.