Red Hat filed CVE-2024-3094 late last week on 2024-03-29. This implicates
recent releases of the native liblzma library as a vector for malicious
code.

This is not the pure Java version that we depend upon for HBase's support
for the LZMA algorithm (
https://github.com/apache/hbase/tree/master/hbase-compression/hbase-compression-xz).
We depend on version 1.9 of xz-java, which was published in 2021, well
before maintenance changes in the project and the involvement of a person
who is now believed to be a malicious actor. Projects like HBase that
depend on xz-java have no reason to be concerned about the issues affecting
the native xz library.

How the backdoor was introduced calls into question the trustworthiness and
viability of the XZ project. GitHub has disabled all repositories related
to XZ and liblzma, even xz-java. The webpage for XZ and xz-java is down.
The open source software community is responding vigorously. CVE-2024-3094
has a CVSS score 10, the highest possible score. Your security team may
become interested in HBase because of hbase-compression-xz's dependency on
xz-java. It is likely any discovered dependency on any LZMA implementation
will at least raise questions.

For now xz-java remains available in Maven central. (See
https://central.sonatype.com/artifact/org.tukaani/xz/versions) We may have
no choice but to immediately remove hbase-compression-xz if Maven blocks or
drops xz-java too, because that will break our builds.

There is no immediate cause for concern. Still, we believe XZ compression
provides little to no value over more modern alternatives, like ZStandard,
that can also achieve similar compression ratios. XZ, and alternatives like
ZStandard with the compression level set to a high value, are also suitable
only for archival use cases and unsuitable for compression of flush files
or for use in minor compactions. Given how niche any use of XZ
compression could
be, we are wondering if there are actually any users of it.

If we have no users of hbase-compression-xz, then it provides little to no
value and continued maintenance of hbase-compression-xz given the issues
with its dependency does not make sense.

Do you use XZ compression, or are you planning to?

If we deprecate XZ compression immediately and then remove it in 2.6, would
this present a problem? In a private discussion we reached consensus on
this approach, but, of course, that is not yet a plan, and something that
could easily change based on feedback.

>From https://nvd.nist.gov/vuln/detail/CVE-2024-3094:
"Malicious code was discovered in the upstream tarballs of xz, starting
with version 5.6.0. Through a series of complex obfuscations, the liblzma
build process extracts a prebuilt object file from a disguised test file
existing in the source code, which is then used to modify specific
functions in the liblzma code. This results in a modified liblzma library
that can be used by any software linked against this library, intercepting
and modifying the data interaction with this library."

--
Best regards,
Andrew

Reply via email to