<div class="container">
<h1>Security update for leancrypto</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-SU-2026:21824-1</td>
</tr>
<tr>
<th>Release Date:</th>
<td>2026-05-19T17:23:09Z</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1253654">bsc#1253654</a>
</li>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1254370">bsc#1254370</a>
</li>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1261382">bsc#1261382</a>
</li>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1262399">bsc#1262399</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>
Cross-References:
</th>
<td>
<ul>
<li style="display: inline;">
<a href="https://www.suse.com/security/cve/CVE-2026-34610.html">CVE-2026-34610</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>CVSS scores:</th>
<td>
<ul class="list-group">
<li class="list-group-item">
<span class="cvss-reference">CVE-2026-34610</span>
<span class="cvss-source">
(
SUSE
):
</span>
<span class="cvss-score">5.9</span>
<span class="cvss-vector">CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N</span>
</li>
<li class="list-group-item">
<span class="cvss-reference">CVE-2026-34610</span>
<span class="cvss-source">
(
NVD
):
</span>
<span class="cvss-score">5.9</span>
<span class="cvss-vector">CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N</span>
</li>
</ul>
</td>
</tr>
<tr>
<th>Affected Products:</th>
<td>
<ul class="list-group">
<li class="list-group-item">SUSE Linux Enterprise Server 16.0</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP applications 16.0</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>An update that solves one vulnerability and has three fixes can now be installed.</p>
<h2>Description:</h2>
<p>This update for leancrypto fixes the following issues</p>
<p>Security issue:</p>
<ul>
<li>CVE-2026-34610: The leancrypto library is a cryptographic library that exclusively contains only PQC-resistant
cryptographic algorithms. Prior to version 1.7.1, lc_x509_extract_name_segment() casts size_t vlen to uint8_t when
stori (bsc#1261382).</li>
</ul>
<p>Non security issues:</p>
<ul>
<li>gnutls Illegal instruction lc_kyber_768_kem_dec_selftest (bsc#1253654).</li>
<li>gnutls: test pqc-hybrid-kx fails on Nehalem or older CPU (bsc#1254370).</li>
</ul>
<p>Changes for leancrypto:</p>
<ul>
<li>Calculate the FIPS HMAC for the leancrypto and the leancrypto-fips
libraries. (bsc#1262399)</li>
<li>Fix build on kernel 7.0</li>
<li>Pick fix for ABI issue in AVX2 assembly for Curve448 causing
test failures when building with GCC 16.</li>
<li>Update to 1.7.2:</li>
<li>Fix RDSEED counter</li>
<li>Process code by AI code checkers and apply suggested cosmetic fixes</li>
<li>Heap memory: always munlock all mlock'ed memory</li>
<li>Fix ChaCha20 on Apple compiled with XCode 26.4</li>
<li>Fix a potential crasher with Base64 and applied various fixes reported</li>
<li>Add X.509 certificate signing request (CSR) generator and parser</li>
<li>ML-DSA: add lc_dilithium_pk_from_sk API to derive the PK from a given SK</li>
<li>SLH-DSA: add lc_sphincs_pk_from_sk API to derive the PK from a given SK</li>
<li>ML-KEM: add lc_kyber_pk_from_sk API to derive the PK from a given SK</li>
<li>AES-CT: fix non-aligned data processing - reported</li>
<li>Apply suggestions from Claude code</li>
<li>X.509: Enforce path length restriction</li>
<li>Update to 1.7.1</li>
<li>Offer a means to select the AES-C constant time / S-Box implementation via
lc_init API</li>
<li>use the AES-C constant time implementation by default - it is about 3 times
slower than the AES-C S-Box implementation, but more secure. As the
leancrypto library is about secure by default, the CT implementation is
just right. Furthermore, if a caller wants to have the faster AES-C S-Box,
he can call lc_init(LC_INIT_AES_SBOX) at the beginning.</li>
<li>FIPS: mark only seeded DRBG instances as FIPS-approved</li>
<li>ASN.1: add lc_x509_cert_check_issuer_ca convenience function</li>
<li>Enable side-channel-resistant AES implementation (and thus enable
respective Timecop tests)</li>
<li>Fix some side channel test failures (all failures are due to test case
issues, and no real problems)</li>
<li>AARCH64: enable GCS support</li>
<li>Add PKCS#8 support for ML-DSA following RFC9881 including full support for
the seed or full keys. The change adds OpenSSL interoperability testing as
well. NOTE: The raw on-disk private key format that is generated with
lc_x509_generate --create-keypair changed to comply with RFC9881.</li>
<li>Add PKCS#8 support for SLH-DSA. The change adds OpenSSL interoperability
testing as well. NOTE: The raw on-disk private key format that is generated
with lc_x509_generate --create-keypair changed to dump the raw key instead
of wrapping it into a BIT STRING to comply with OpenSSL's format.</li>
<li>Provide full PKCS#7 interoperability with OpenSSL: OpenSSL artificially
orders the parsing of the authenticated attributes. This implies that the
message digest part of the authenticated attributes is parsed as last
entry. This ordering is important for the signature generation and
verification. Furthermore, for ML-DSA/SLH-DSA, the authenticated attributes
are signed with the pure algorithm instead of the pre-hashed operation as
suggested by RFC5652 section 9.2.</li>
<li>ML-KEM/DSA: add safety measures against compilers trying to reason about
code they should not reason about. Derived from
https://github.com/pq-code-package/ml[dsa|kem]-native/</li>
<li>ML-DSA: reduce amount of duplicate code compilation suggested</li>
<li>ML-DSA: fix bug in poly_uniform which, however, is unlikely to be triggered</li>
<li>ChaCha20: fix crasher when assembler support is not compiled</li>
<li>Add AES constant time C implementation accessible with the lc_aes_*ct
references. Yet, it is about 3 times slower than the default C
implementation. Thus is is only provided if somebody truly relies on a
constant time implementation.</li>
<li>Fix bsc#1254370, bsc#1253654 - AVX detection is wrong on older intel CPUs</li>
<li>Update to 1.6.0:</li>
<li>ASN.1: use stack for small generator for small use cases</li>
<li>X.509: Updates required to support the shim boot loader</li>
<li>X.509: add lc_gmtime to convert Epoch to time format</li>
<li>ASN.1: added to Linux kernel (for 64 bit systems only)</li>
<li>Added AES-GCM and AES-XTS</li>
<li>Availability: remove assert() calls throughout the code - in case of a self
test error, disable the algorithm. Instead of using assert, apply a centrally
managed test manager that stores the test status. This implies that some
initalization APIs like lc_hash_init, lc_sym_init, lc_hmac_init are changed
such that they return an error code if self tests failed. Thus, the version
is now changed as this is considered to be an ABI change. Although this
sounds heavy, the test manager is relatively small and the runtime state
should be smaller than the old approach considering the old approach uses one
global 32 bit integer per self test to maintain the state. This is now
replaced with a set of 32 bit atomic integers that hold a 3-bit field for
each algorithm. This change also adds the API call of lc_rerun_one_selftest
which allows triggering the reruning of a self test for one given algorithm.</li>
<li>FIPS: Rearchitect integrity test control value generator: The build process now
uses the host's objcopy to extract the ELF sections of interest into a separate
file, use a build_machine compiled version of sha3-256sum to generate the
digest of it and reinsert it into the leancrypto-fips.so. This now allows
cross-compilation with FIPS integrity test support. There is no functional
change to leancrypto though.</li>
<li>Significant reduction of compilation units by almost half by not having
global, but per-test compiled C files.</li>
<li>Linux kernel: add /proc/leancrypto</li>
<li>FIPS: Add negative testing support</li>
<li>Add SHAKE-512 and XDRBG-512 support</li>
<li>FIPS: Add FIPS indicator which implies that libleancrypto.so has the same
functionality as libleancrypto-fips.so with the exception that the latter
performs an integrity test.</li>
<li>ARMv9: fix BTI for ML-DSA</li>
<li>Don't strip debug symbols</li>
<li>Add Linux kernel module spec file</li>
</ul>
<h2>Patch Instructions:</h2>
<p>
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".<br/>
Alternatively you can run the command listed for your product:
</p>
<ul class="list-group">
<li class="list-group-item">
SUSE Linux Enterprise Server for SAP applications 16.0
<br/>
<code>zypper in -t patch SUSE-SLES-16.0-789=1</code>
</li>
<li class="list-group-item">
SUSE Linux Enterprise Server 16.0
<br/>
<code>zypper in -t patch SUSE-SLES-16.0-789=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
SUSE Linux Enterprise Server for SAP applications 16.0 (ppc64le x86_64)
<ul>
<li>libleancrypto-fips1-debuginfo-1.7.2-160000.1.1</li>
<li>leancrypto-tools-1.7.2-160000.1.1</li>
<li>libleancrypto1-debuginfo-1.7.2-160000.1.1</li>
<li>libleancrypto1-1.7.2-160000.1.1</li>
<li>leancrypto-devel-static-1.7.2-160000.1.1</li>
<li>leancrypto-tools-debuginfo-1.7.2-160000.1.1</li>
<li>libleancrypto-fips1-1.7.2-160000.1.1</li>
<li>leancrypto-devel-1.7.2-160000.1.1</li>
</ul>
</li>
<li>
SUSE Linux Enterprise Server 16.0 (aarch64 ppc64le s390x x86_64)
<ul>
<li>libleancrypto-fips1-debuginfo-1.7.2-160000.1.1</li>
<li>leancrypto-tools-1.7.2-160000.1.1</li>
<li>libleancrypto1-debuginfo-1.7.2-160000.1.1</li>
<li>libleancrypto1-1.7.2-160000.1.1</li>
<li>leancrypto-devel-static-1.7.2-160000.1.1</li>
<li>leancrypto-tools-debuginfo-1.7.2-160000.1.1</li>
<li>libleancrypto-fips1-1.7.2-160000.1.1</li>
<li>leancrypto-devel-1.7.2-160000.1.1</li>
</ul>
</li>
</ul>
<h2>References:</h2>
<ul>
<li>
<a href="https://www.suse.com/security/cve/CVE-2026-34610.html">https://www.suse.com/security/cve/CVE-2026-34610.html</a>
</li>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1253654">https://bugzilla.suse.com/show_bug.cgi?id=1253654</a>
</li>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1254370">https://bugzilla.suse.com/show_bug.cgi?id=1254370</a>
</li>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1261382">https://bugzilla.suse.com/show_bug.cgi?id=1261382</a>
</li>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1262399">https://bugzilla.suse.com/show_bug.cgi?id=1262399</a>
</li>
</ul>
</div>