Skip to content

GHSA-xp4f-g2cm-rhg7 CVE-2026-86200

PocketMine-MP has LogDoS by many junk properties in client data JWT in LoginPacket

Medium Packagist
Severity
0.0 / 10
Medium · CVSS 4.0
Exploit chance (EPSS)
0.64%
Chance of exploitation in the next 30 days. Higher than 50.56% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-779 Logging of Excessive Data
Fix
5.42.1
Upgrade pocketmine/pocketmine-mp to this version or later

Description

Impact

Attackers can fill the body of the clientData JWT in LoginPacket with lots of junk properties, causing the server to flood warning messages, as well as wasting CPU time.

This happens because the JsonMapper instance used to process the JWT body is configured to warn on unexpected properties instead of rejecting them outright. While this behaviour increases flexibility for random changes introduced by Microsoft, it also creates vulnerabilities if not handled carefully.

This vulnerability affects PocketMine-MP servers exposed to a public network where unknown actors may have access.

Patches

This issue was fixed in c1d4a813fb8c21bfd8b9affd040da864b794df71 by restricting the number of unknown properties to 10, and rejecting the packet if this limit is exceeded. This continues to tolerate random additions to the JWT between versions, while preventing the logger from being abused by clients to slow down the server.

Workarounds

Plugins can handle DataPacketReceiveEvent to capture LoginPacket, and pre-process the clientData JWT to ensure it doesn't have any unusual properties in it. This can be achieved using JsonMapper (see the original affected code below) and setting the bExceptionOnUndefinedProperty flag to true. A JsonMapper_Exception will be thrown if the JWT is problematic.

However, it's important to caveat that this approach may cause login failures if any unexpected properties appear out of the blue in future versions (which has happened in the past).

References

Affected code:

https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L289-L303 https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L334-L350

Affected versions

Packagist

PackageVulnerableFixed in
pocketmine/pocketmine-mp
< 5.42.1
5.42.1

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

pocketmine/pocketmine-mp Packagist → 5.42.1

composer
composer require pocketmine/pocketmine-mp:^5.42.1

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Attack vector
Network
Attack complexity
Low
Attack requirements
None
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
None
Availability (vulnerable system)
Low
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None

CVSS 3.1 5.3

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

Weakness

CWE-779: Logging of Excessive Data

The product logs too much information, making log files hard to process and possibly hindering recovery efforts or forensic analysis after an attack.

How to prevent it
  • Architecture and Design: Suppress large numbers of duplicate log messages and replace them with periodic summaries. For example, syslog may include an entry that states "last message repeated X times" when recording repeated events.
  • Architecture and Design: Support a maximum size for the log file that can be controlled by the administrator. If the maximum size is reached, the admin should be notified. Also, consider reducing functionality of the product. This may result in a denial-of-service to legitimate product users, but it will prevent the product from adversely impacting the entire system.
  • Implementation: Adjust configurations appropriately when the product is transitioned from a debug state to production.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-pg53-p7qp-65cv
PocketMine-MP has potential memory/network vulnerability from repeated ResourcePackClientResponsePacket packets
Low Also affects pocketmine/pocketmine-mp
GHSA-f9jp-856v-8642
PocketMine-MP: Player entities can still die and drop items in flaggedForDespawn state
Medium Also affects pocketmine/pocketmine-mp
GHSA-7hmv-4j2j-pp6f
PocketMine-MP: Network amplification vulnerability with `ActorEventPacket`
Medium Also affects pocketmine/pocketmine-mp
GHSA-788v-5pfp-93ff
PocketMine-MP: JSON decoding of unlimited size large arrays/objects in ModalFormResponse Handling
Medium Also affects pocketmine/pocketmine-mp
GHSA-h6rj-3m53-887h
PocketMine-MP: LogDoS by large complex unknown property logging in clientData in LoginPacket
High Also affects pocketmine/pocketmine-mp
GHSA-fqqv-56h5-f57g
PocketMine-MP `ResourcePackDataInfoPacket` amplification vulnerability due to lack of resource pack sequence status checking
Medium Also affects pocketmine/pocketmine-mp
GHSA-g274-c6jj-h78p
PocketMine-MP allows malicious client data to waste server resources due to lack of limits for explode()
Medium Also affects pocketmine/pocketmine-mp
GHSA-h6j3-j35f-v2x7
PocketMine-MP server crash with certain invalid JSON payloads in `LoginPacket` due to dependency vulnerability (3rd time)
High Also affects pocketmine/pocketmine-mp
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor