Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cryptsetup for openSUSE:Factory checked in at 2026-07-26 11:27:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cryptsetup (Old) and /work/SRC/openSUSE:Factory/.cryptsetup.new.2004 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cryptsetup" Sun Jul 26 11:27:01 2026 rev:139 rq:1367551 version:2.8.7 Changes: -------- --- /work/SRC/openSUSE:Factory/cryptsetup/cryptsetup.changes 2026-07-10 17:34:19.634803255 +0200 +++ /work/SRC/openSUSE:Factory/.cryptsetup.new.2004/cryptsetup.changes 2026-07-26 11:27:03.471798419 +0200 @@ -1,0 +2,100 @@ +Wed Jul 22 10:47:44 UTC 2026 - Pedro Monreal <[email protected]> + +- Update to 2.8.7: + * Changes related to Linux kernel AF_ALG crypto userspace interface + deprecation Linux kernel maintainers decided to deprecate the + AF_ALG interface, which was heavily used by cryptsetup, with the + plan to remove it (or severely limit it) for security reasons. + Libcryptsetup uses userspace (primarily via AF_ALG) for processing + LUKS keyslots and for on-disk metadata handling for other formats. + Using AF_ALG ensured that the same set of algorithms is present in + userspace and later in-kernel for device activation. + While libcryptsetup has a concept of fallback to userspace library, + it was not used in all situations. + In this version, libcryptsetup can use a userspace crypto library, + AF_ALG (if present), and in some situations (LUKS keyslots), fallback + to a temporary dm-crypt mapping. The last option requires root + privileges. This ensures that most operations will continue to work + even when AF_ALG is disabled or limited. + Unfortunately, removing the AF_ALG could cause severe compatibility + issues if the required algorithm (or encryption mode) is not implemented + in the userspace library. A typical example is the Adiantum cipher, + which is implemented only in the kernel. Also, ciphers like Serpent or + Twofish (in XTS mode) are missing from several userspace libraries. + The cryptsetup benchmark for ciphers is no longer available if the + AF_ALG interface is unavailable. + * Keyring handling changes. + Libcryptsetup can use the kernel keyring to transfer the volume key + into the kernel, avoiding sending it as a parameter to system calls. + In previous versions, the volume key could be stored in the thread + keyring, which should be removed when the process exits. Unfortunately, + the thread keyring can remain active in some situations (such as when + allocating a loop device). This could be a problem after calling + luksSuspend when the volume key could remain in memory. + Instead of loading volume keys directly into the thread keyring, + cryptsetup now creates an intermediary keyring linked into the thread + keyring and loads volume keys there. + The intermediary keyring is now removed in the libcryptsetup context + destructor (usually on application exit). + Note that in previous versions, volume keys persisted until the process + exited (even after the context destructor was called). + * Changes related to possible LUKS volume key digest collisions. + LUKS on-disk metadata uses a volume key digest generated by the PBKDF2 + key-derivation algorithm to verify that the decrypted volume key is valid. + The use of PBKDF2 (instead of a more suitable cryptographic digest + algorithm) is part of the original LUKS design. It was retained for LUKS2 + for compatibility (it allows easy in-place conversion). + However, PBKDF2 has several design flaws. As it is based on HMAC + (Hash-based Message Authentication Code), it also inherits the weak-key + HMAC issue. In HMAC, the key can be arbitrarily long. If the key is shorter + than the hash internal block size, it is padded with zeroes to a full block + size. This flawed padding causes any HMAC key (shorter than the specified + block size) to collide with keys that have added trailing zeroes. A collision + means that HMAC (and PBKDF2) has the same output for colliding keys. + In LUKS, a PBKDF2 collision is not a security issue; it cannot compromise + data confidentiality. + Moreover, the colliding key has a different length and should be rejected + by the underlying block cipher. Unfortunately, in some reencryption + scenarios (e.g., a header without keyslots), a collision key could be + accepted, leading to possible data corruption. + Code now always validates the expected key length. + This validation is now strictly implemented in LUKS metadata processing. + In the long term, LUKS will need to upgrade to a better volume key digest + algorithm, but that will make the format backward-incompatible. + * Support Aria and Camellia ciphers in the libgcrypt cryptographic backend. + * Fix pkg-config library entry for the Mbed TLS cryptographic backend. + * Better document CRYPT_VOLUME_KEY_NO_SEGMENT and CRYPT_VOLUME_KEY_DIGEST_REUSE + API flags. The keyslot created with the CRYPT_VOLUME_KEY_NO_SEGMENT flag must + always be unbound (not assigned to the default data segment). The use of the + CRYPT_VOLUME_KEY_DIGEST_REUSE flag does not make sense without the + CRYPT_VOLUME_KEY_NO_SEGMENT or CRYPT_VOLUME_KEY_SET flags. + * Fix several possible corner cases in OpenSSL cryptographic backend (based + on AI analysis). + These include checking before casting from size_t to int, checking return + values for the old OpenSSL HMAC API, avoiding sending a partial buffer to + the caller if the operation fails, and explicitly checking for buffer length + overflow. Most of these cannot happen in the libcryptsetup context, but the + cryptographic backend can be used for other projects. + * Code hardening based on various AI analysis reports. + Including a fix for snprintf truncation in libdevmapper code, avoiding + possible leak of JSON keyslot object on error path, and a fix for + reencryption temporary device name. + * Fix jq (JSON commandline processor) use in testing scripts. + After the security update for jq, it no longer processes JSON with + trailing zeroes. + Regression test scripts were updated to avoid using this scenario. + * Add support for --integrity-legacy-hmac in integritysetup open command. + Integritysetup open command incorrectly configured options for legacy + HMAC devices. To use --integrity-legacy-hmac, it must now be used both + on format and open. + * Fix cryptsetup --tries option not to overflow for high values. + * Remove patches upstream: + - cryptsetup-Add-keyring-key-type.patch + - cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch + - cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch + - cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch + - cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch + - cryptsetup-tests-refactor-keyring-helpers.patch + - cryptsetup-tests-verify-intermediary-keyring-cleanup-after-cryp.patch + +------------------------------------------------------------------- Old: ---- cryptsetup-2.8.6.tar.sign cryptsetup-2.8.6.tar.xz cryptsetup-Add-keyring-key-type.patch cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch cryptsetup-tests-refactor-keyring-helpers.patch cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch cryptsetup-tests-verify-intermediary-keyring-cleanup-after-cryp.patch New: ---- cryptsetup-2.8.7.tar.sign cryptsetup-2.8.7.tar.xz ----------(Old B)---------- Old: * Remove patches upstream: - cryptsetup-Add-keyring-key-type.patch - cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch Old: - cryptsetup-Add-keyring-key-type.patch - cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch - cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch Old: - cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch - cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch - cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch Old: - cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch - cryptsetup-tests-refactor-keyring-helpers.patch - cryptsetup-tests-verify-intermediary-keyring-cleanup-after-cryp.patch Old: - cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch - cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch - cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch Old: - cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch - cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch - cryptsetup-tests-refactor-keyring-helpers.patch Old: - cryptsetup-tests-refactor-keyring-helpers.patch - cryptsetup-tests-verify-intermediary-keyring-cleanup-after-cryp.patch ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cryptsetup.spec ++++++ --- /var/tmp/diff_new_pack.vQk7oL/_old 2026-07-26 11:27:04.935848656 +0200 +++ /var/tmp/diff_new_pack.vQk7oL/_new 2026-07-26 11:27:04.935848656 +0200 @@ -18,7 +18,7 @@ %define so_ver 12 Name: cryptsetup -Version: 2.8.6 +Version: 2.8.7 Release: 0 Summary: Setup program for dm-crypt Based Encrypted Block Devices License: CC-BY-SA-4.0 AND LGPL-2.0-or-later WITH cryptsetup-OpenSSL-exception @@ -30,14 +30,6 @@ Source2: baselibs.conf Source3: cryptsetup.keyring Patch0: cryptsetup-fips140-3.patch -# PATCH-FIX-UPSTREAM bsc#1270254 Load volume keys in intermediary keyring linked in thread keyring -Patch1: cryptsetup-Add-keyring-key-type.patch -Patch2: cryptsetup-Load-volume-keys-in-intermediary-keyring-linked-in-t.patch -Patch3: cryptsetup-Use-unique-intermediary-keyring-name-per-device.patch -Patch4: cryptsetup-tests-revoke-keys-instead-unlinking-from-thread-keyr.patch -Patch5: cryptsetup-tests-verify-VK-and-internal-keyring-cleanup-after-p.patch -Patch6: cryptsetup-tests-refactor-keyring-helpers.patch -Patch7: cryptsetup-tests-verify-intermediary-keyring-cleanup-after-cryp.patch # 2.6.38 has the required if_alg.h BuildRequires: linux-glibc-devel >= 2.6.38 BuildRequires: fdupes @@ -217,6 +209,8 @@ %{_mandir}/man8/cryptsetup-convert.8%{?ext_man} %{_mandir}/man8/cryptsetup-create.8%{?ext_man} %{_mandir}/man8/cryptsetup-erase.8%{?ext_man} +%{_mandir}/man8/cryptsetup-fvault2Dump.8%{?ext_man} +%{_mandir}/man8/cryptsetup-fvault2Open.8%{?ext_man} %{_mandir}/man8/cryptsetup-isLuks.8%{?ext_man} %{_mandir}/man8/cryptsetup-loopaesOpen.8%{?ext_man} %{_mandir}/man8/cryptsetup-luksAddKey.8%{?ext_man} @@ -245,6 +239,4 @@ %{_mandir}/man8/cryptsetup-token.8%{?ext_man} %{_mandir}/man8/integritysetup.8%{?ext_man} %{_mandir}/man8/veritysetup.8%{?ext_man} -%{_mandir}/man8/cryptsetup-fvault2Dump.8%{?ext_man} -%{_mandir}/man8/cryptsetup-fvault2Open.8%{?ext_man} ++++++ cryptsetup-2.8.6.tar.xz -> cryptsetup-2.8.7.tar.xz ++++++ /work/SRC/openSUSE:Factory/cryptsetup/cryptsetup-2.8.6.tar.xz /work/SRC/openSUSE:Factory/.cryptsetup.new.2004/cryptsetup-2.8.7.tar.xz differ: char 15, line 1
