Miggo Logo

GHSA-79rc-jjh6-rc89:
PocketMine-MP server crash due to incorrect EC curve used for LoginPacket identityPublicKey

7.5

CVSS Score
3.1

Basic Information

CVE ID
-
EPSS Score
-
CWE
-
Published
9/14/2023
Updated
9/14/2023
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
pocketmine/pocketmine-mpcomposer>= 5.2.0, < 5.3.15.3.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from three key gaps: 1) JWT parsing accepted any EC curve, 2) login validation didn't verify client key parameters, and 3) ECDH derivation lacked pre-checks. The commit added curve validation in parseDerPublicKey (JwtUtils), enforced its use in validateToken (ProcessLoginTask), and added key validation in generateSharedSecret (EncryptionUtils). The unpatched versions of these functions directly enabled the crash scenario by allowing curve mismatches to reach critical cryptographic operations.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t T** s*rv*r us*s **** to **l*ul*t* * s**r** s**r*t *or t** symm*tri* *n*ryption k*y us** to *n*rypt n*twork p**k*ts **t*r lo**in* in. **** r*quir*s t**t t** k*ys us** must *ot* **lon* to t** s*m* *llipti* *urv*. In Min**r**t: ***ro*k **itio

Reasoning

T** vuln*r**ility st*mm** *rom t*r** k*y **ps: *) JWT p*rsin* ****pt** *ny ** *urv*, *) lo*in v*li**tion *i*n't v*ri*y *li*nt k*y p*r*m*t*rs, *n* *) **** **riv*tion l**k** pr*-****ks. T** *ommit ***** *urv* v*li**tion in `p*rs***rPu*li*K*y` (`JwtUtil