Skip to content

Improperly checked metadata on tools/armour itemstacks received from the client

High severity GitHub Reviewed Published Mar 18, 2022 in pmmp/PocketMine-MP • Updated Jan 11, 2023

Package

composer pocketmine/pocketmine-mp (Composer)

Affected versions

< 4.2.4

Patched versions

4.2.4

Description

Impact

Due to a workaround applied in 1.13, an attacker may send a negative damage/meta value in a tool or armour item's NBT, which TypeConverter then blindly uses as if it was valid without being checked.

When this invalid metadata value reaches Durable->setDamage(), an exception is thrown because the metadata is not within the expected range for damage values.

This can be reproduced with either a too-large damage value, or a negative one.

Patches

c8e1cfcbee4945fd4b63d2a7e96025c59744d4f1

Workarounds

In theory this can be checked by plugins using a custom TypeConverter, but this is likely to be very cumbersome.

For more information

References

@dktapps dktapps published to pmmp/PocketMine-MP Mar 18, 2022
Published to the GitHub Advisory Database Mar 18, 2022
Reviewed Mar 18, 2022
Last updated Jan 11, 2023

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Weaknesses

CVE ID

No known CVE

GHSA ID

GHSA-46c5-pfj8-fv65

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.