Skip to main content
← All vulnerabilities
CVE-2026-106451GHSA-MCR4-QMVW-PX4G

yawkat LZ4 Java: Native library extraction to a shared temporary directory is vulnerable to file replacement by another local user

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.11.4
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

yawkat LZ4 Java provides LZ4 compression for Java. From 1.7.0 until 1.11.4, net.jpountz.util.Native.load() uses File.createTempFile to create an exclusive temporary .lck file but derives the native-library path by removing the suffix, then FileOutputStream opens that predictable path without exclusive creation, allowing another local user with access to the same shared temporary directory to create or replace the library file before System.load() uses it. Successful exploitation depends on shared-directory permissions, host protections, and winning the race, and can execute native code as the victim; hardened systems may instead cause library loading to fail and fall back to Java implementations. Configurations using a system library, a private java.io.tmpdir, or Java-only implementations are not affected. This issue is fixed in version 1.11.4.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. Record last updated

Affected versions

  • yawkat lz4-java

    fixed in 1.11.4

  • at.yawk.lz4:lz4-javaMaven

    fixed in 1.11.4

  • org.lz4:lz4-javaMaven

    From 1.7.0 · through 1.8.1

References 3

GitHub · yawkat/lz4-java