PocketMine-MP invalid skin geometry JSON data leading to server crash
The advisory, in context
Impact
pocketmine\entity\Skin doesn't correctly handle errors produced by adhocore/json-comment, which throws RuntimeException rather than returning false as PocketMine-MP expects.
This leads to a server crash if the skin geometry data is invalid for some reason (e.g. a syntax error).
Patches
c9626c610b8f6810c8c987559c9197b2a291f0bb
Workarounds
A plugin could handle LoginPacket and PlayerSkinPacket to verify the skin geometry data can be parsed correctly, so that the error condition in the core code is never reached.
For more information
If you have any questions or comments about this advisory:
- Email us at security@pmmp.io
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
Earlier releases before 4.7.2
Fixed in 4.7.2
209 explicitly affected versions
3.0.0, 3.0.1, 3.0.10, 3.0.11, 3.0.12, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0.8, 3.0.9, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.10.0, 3.10.1, 3.11.0, 3.11.1, 3.11.2, 3.11.3, 3.11.4, 3.11.5, 3.11.6, 3.11.7, 3.12.0, 3.12.1, 3.12.2, 3.12.3, 3.12.4, 3.12.5, 3.12.6, 3.13.0, 3.13.1, 3.14.0, 3.14.1, 3.14.2, 3.14.3, 3.15.0, 3.15.1, 3.15.2, 3.15.3, 3.15.4, 3.16.0, 3.16.1, 3.17.0, 3.17.1, 3.17.2, 3.17.3, 3.17.4, 3.17.5, 3.17.6, 3.17.7, 3.18.0, 3.18.1, 3.18.2, 3.19.0, 3.19.1, 3.19.2, 3.19.3, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.20.0, 3.21.0, 3.21.1, 3.22.0, 3.22.1, 3.22.2, 3.22.3, 3.22.4, 3.22.5, 3.23.0, 3.23.1, 3.24.0, 3.25.0, 3.25.1, 3.25.2, 3.25.3, 3.25.4, 3.25.5, 3.25.6, 3.26.0, 3.26.1, 3.26.2, 3.26.3, 3.26.4, 3.26.5, 3.27.0, 3.28.0, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.5.0, 3.5.1, 3.5.10, 3.5.11, 3.5.12, 3.5.13, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.5.8, 3.5.9, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.8.0, 3.8.1, 3.8.2, 3.8.3, 3.8.4, 3.8.5, 3.8.6, 3.8.7, 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.9.5, 3.9.6, 3.9.7, 3.9.8, 4.0.0, 4.0.0-BETA1, 4.0.0-BETA10, 4.0.0-BETA11, 4.0.0-BETA12, 4.0.0-BETA13, 4.0.0-BETA14, 4.0.0-BETA15, 4.0.0-BETA2, 4.0.0-BETA3, 4.0.0-BETA4, 4.0.0-BETA5, 4.0.0-BETA6, 4.0.0-BETA7, 4.0.0-BETA8, 4.0.0-BETA9, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.0.5, 4.0.6, 4.0.7, 4.0.8, 4.0.9, 4.1.0, 4.1.0-BETA1, 4.1.0-BETA2, 4.2.0, 4.2.1, 4.2.10, 4.2.2, 4.2.3, 4.2.4, 4.2.5, 4.2.6, 4.2.7, 4.2.8, 4.2.9, 4.3.0, 4.3.1, 4.3.2, 4.3.3, 4.3.4, 4.4.0, 4.4.0-BETA1, 4.4.1, 4.4.2, 4.5.0, 4.5.1, 4.5.2, 4.6.0, 4.6.1, 4.6.2, 4.7.0, 4.7.1
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "4.7.2"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"3.0.0",
"3.0.1",
"3.0.10",
"3.0.11",
"3.0.12",
"3.0.2",
"3.0.3",
"3.0.4",
"3.0.5",
"3.0.6",
"3.0.7",
"3.0.8",
"3.0.9",
"3.1.0",
"3.1.1",
"3.1.2",
"3.1.3",
"3.1.4",
"3.1.5",
"3.1.6",
"3.1.7",
"3.1.8",
"3.10.0",
"3.10.1",
"3.11.0",
"3.11.1",
"3.11.2",
"3.11.3",
"3.11.4",
"3.11.5",
"3.11.6",
"3.11.7",
"3.12.0",
"3.12.1",
"3.12.2",
"3.12.3",
"3.12.4",
"3.12.5",
"3.12.6",
"3.13.0",
"3.13.1",
"3.14.0",
"3.14.1",
"3.14.2",
"3.14.3",
"3.15.0",
"3.15.1",
"3.15.2",
"3.15.3",
"3.15.4",
"3.16.0",
"3.16.1",
"3.17.0",
"3.17.1",
"3.17.2",
"3.17.3",
"3.17.4",
"3.17.5",
"3.17.6",
"3.17.7",
"3.18.0",
"3.18.1",
"3.18.2",
"3.19.0",
"3.19.1",
"3.19.2",
"3.19.3",
"3.2.0",
"3.2.1",
"3.2.2",
"3.2.3",
"3.2.4",
"3.2.5",
"3.2.6",
"3.2.7",
"3.20.0",
"3.21.0",
"3.21.1",
"3.22.0",
"3.22.1",
"3.22.2",
"3.22.3",
"3.22.4",
"3.22.5",
"3.23.0",
"3.23.1",
"3.24.0",
"3.25.0",
"3.25.1",
"3.25.2",
"3.25.3",
"3.25.4",
"3.25.5",
"3.25.6",
"3.26.0",
"3.26.1",
"3.26.2",
"3.26.3",
"3.26.4",
"3.26.5",
"3.27.0",
"3.28.0",
"3.3.0",
"3.3.1",
"3.3.2",
"3.3.3",
"3.3.4",
"3.4.0",
"3.4.1",
"3.4.2",
"3.4.3",
"3.5.0",
"3.5.1",
"3.5.10",
"3.5.11",
"3.5.12",
"3.5.13",
"3.5.2",
"3.5.3",
"3.5.4",
"3.5.5",
"3.5.6",
"3.5.7",
"3.5.8",
"3.5.9",
"3.6.0",
"3.6.1",
"3.6.2",
"3.6.3",
"3.6.4",
"3.6.5",
"3.6.6",
"3.7.0",
"3.7.1",
"3.7.2",
"3.7.3",
"3.8.0",
"3.8.1",
"3.8.2",
"3.8.3",
"3.8.4",
"3.8.5",
"3.8.6",
"3.8.7",
"3.9.0",
"3.9.1",
"3.9.2",
"3.9.3",
"3.9.4",
"3.9.5",
"3.9.6",
"3.9.7",
"3.9.8",
"4.0.0",
"4.0.0-BETA1",
"4.0.0-BETA10",
"4.0.0-BETA11",
"4.0.0-BETA12",
"4.0.0-BETA13",
"4.0.0-BETA14",
"4.0.0-BETA15",
"4.0.0-BETA2",
"4.0.0-BETA3",
"4.0.0-BETA4",
"4.0.0-BETA5",
"4.0.0-BETA6",
"4.0.0-BETA7",
"4.0.0-BETA8",
"4.0.0-BETA9",
"4.0.1",
"4.0.2",
"4.0.3",
"4.0.4",
"4.0.5",
"4.0.6",
"4.0.7",
"4.0.8",
"4.0.9",
"4.1.0",
"4.1.0-BETA1",
"4.1.0-BETA2",
"4.2.0",
"4.2.1",
"4.2.10",
"4.2.2",
"4.2.3",
"4.2.4",
"4.2.5",
"4.2.6",
"4.2.7",
"4.2.8",
"4.2.9",
"4.3.0",
"4.3.1",
"4.3.2",
"4.3.3",
"4.3.4",
"4.4.0",
"4.4.0-BETA1",
"4.4.1",
"4.4.2",
"4.5.0",
"4.5.1",
"4.5.2",
"4.6.0",
"4.6.1",
"4.6.2",
"4.7.0",
"4.7.1"
]
}