<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 10 Oct 2026 11:20:19 +0000</lastBuildDate>
    <item>
      <title>GHSA-xx22-p4ch-683r — LZ4 Java: Native XXHash implementations can crash the JVM when passed invalid byte array ranges</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-xx22-p4ch-683r</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: at.yawk.lz4:lz4-java, Maven: org.lz4:lz4-java&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Insufficient validation of byte array arguments in JNI-based XXHash implementations in lz4-java 1.11.0 and earlier allows callers to crash the JVM by passing an invalid array reference or invalid range to native XXHash methods.&lt;/p&gt;
&lt;p&gt;This affects applications where an attacker can influence the byte array object or the `off` / `len` arguments passed to affected XXHash APIs. It does **not** affect the common case where only the contents of a valid byte array are attacker-controlled.&lt;/p&gt;
&lt;p&gt;Java-based XXHash implementations are *not* affected.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The JNI-backed XXHash implementations pass caller-provided byte array arguments to native code. The affected APIs are:&lt;/p&gt;
&lt;p&gt;- `XXHashFactory.nativeInstance().hash32().hash(byte[] buf, int off, int len, int seed)`
- `XXHashFactory.nativeInstance().hash64().hash(byte[] buf, int off, int len, long seed)`
- `XXHashFactory.nativeInstance().newStreamingHash32(seed).update(byte[] bytes, int off, int len)`
- `XXHashFactory.nativeInstance().newStreamingHash64(seed).update(byte[] bytes, int off, int len)`&lt;/p&gt;
&lt;p&gt;Before the fix, the streaming JNI implementations did not validate `bytes`, `off`, or `len` before calling `XXHashJNI.XXH32_update` / `XXHashJNI.XXH64_update`. The non-streaming JNI implementations called `SafeUtils.checkRange`, but `SafeUtils.checkRange(byte[], int, int)` skipped all array access when `len == 0`, so a null byte array with a zero length could still reach JNI.&lt;/p&gt;
&lt;p&gt;As a result:&lt;/p&gt;
&lt;p&gt;- `hash(null, 0, 0, seed)` and `update(null…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Maven: at.yawk.lz4:lz4-java, Maven: org.lz4:lz4-java&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Insufficient validation of byte array arguments in JNI-based XXHash implementations in lz4-java 1.11.0 and earlier allows callers to crash the JVM by passing an invalid array reference or invalid range to native XXHash methods.&lt;/p&gt;
&lt;p&gt;This affects applications where an attacker can influence the byte array object or the `off` / `len` arguments passed to affected XXHash APIs. It does **not** affect the common case where only the contents of a valid byte array are attacker-controlled.&lt;/p&gt;
&lt;p&gt;Java-based XXHash implementations are *not* affected.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The JNI-backed XXHash implementations pass caller-provided byte array arguments to native code. The affected APIs are:&lt;/p&gt;
&lt;p&gt;- `XXHashFactory.nativeInstance().hash32().hash(byte[] buf, int off, int len, int seed)`
- `XXHashFactory.nativeInstance().hash64().hash(byte[] buf, int off, int len, long seed)`
- `XXHashFactory.nativeInstance().newStreamingHash32(seed).update(byte[] bytes, int off, int len)`
- `XXHashFactory.nativeInstance().newStreamingHash64(seed).update(byte[] bytes, int off, int len)`&lt;/p&gt;
&lt;p&gt;Before the fix, the streaming JNI implementations did not validate `bytes`, `off`, or `len` before calling `XXHashJNI.XXH32_update` / `XXHashJNI.XXH64_update`. The non-streaming JNI implementations called `SafeUtils.checkRange`, but `SafeUtils.checkRange(byte[], int, int)` skipped all array access when `len == 0`, so a null byte array with a zero length could still reach JNI.&lt;/p&gt;
&lt;p&gt;As a result:&lt;/p&gt;
&lt;p&gt;- `hash(null, 0, 0, seed)` and `update(null…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-xx22-p4ch-683r</guid>
    </item>
  </channel>
</rss>
