Skip to content

Deserialization of Untrusted Data in network IO

High
bziemons published GHSA-mcp7-xf3v-25x3 Jul 30, 2023

Package

logisticspipes-0.10.0.70.jar (Jenkins)

Affected versions

>=0.7.0.91,<0.10.0.71

Patched versions

0.10.0.71

Description

Impact

Logistics Pipes is a modification (a.k.a. mod) for the computer game Minecraft Java Edition. The mod used Java's ObjectInputStream#readObject on untrusted data coming from clients or servers over the network resulting in possible remote code execution when sending specifically crafted network packets after connecting. The affected versions were released between 2013 and 2016 and the issue (back then unknown) was fixed in 2016 by a refactoring of the network IO code.
The issue is present in all Logistics Pipes versions ranged from (0.7.0.91, 0.10.0.71], which were downloaded from different platforms summing up to multi-million downloads. On GitHub the issue was introduced by commit 527c4f4 and fixed in commit 39a90b8.

Patches

For Minecraft version 1.7.10 the issue was fixed in build 0.10.0.71. Everybody on Minecraft 1.7.10 should check their version number of Logistics Pipes in their modlist and update, if the version number is smaller than 0.10.0.71. Newer versions can be obtained here: https://ci.rs485.network/view/Logistics%20Pipes%20Archive/job/LogisticsPipes-0.10-mc17-bc7/
Any newer supported Minecraft version (like 1.12.2) never had a Logistics Pipes version with vulnerable code.

Workarounds

The best available workaround for vulnerable versions is to play in singleplayer only or update to newer Minecraft versions and modpacks.
The project https://github.com/dogboy21/serializationisbad provides a mod preventing remote code execution via deserialization via ObjectInputStream#readObject.

References

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

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

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2023-38689

Weaknesses