[ANNOUNCE] cryptsetup 2.7.3
Milan Broz <[email protected]> Mon, 17 Jun 2024 14:53:05 +0200
| Newsgroups | dev.linux.lists.cryptsetup |
|---|---|
| Message-ID | <[email protected]> |
The cryptsetup 2.7.3 stable release is available at
https://gitlab.com/cryptsetup/cryptsetup
Please note that release packages are located on kernel.org
https://www.kernel.org/pub/linux/utils/cryptsetup/v2.7/
Feedback and bug reports are welcomed.
Cryptsetup 2.7.3 Release Notes
==============================
Stable bug-fix release with security fixes.
All users of cryptsetup 2.7 must upgrade to this version.
Changes since version 2.7.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Do not allow formatting LUKS2 with Opal SED (hardware encryption)
if the reported logical sector size for the block device and Opal
encryption logical block differs.
Such a configuration can lead to a partially encrypted Opal locking
range or data destruction following the expected locking range.
Some NVMe drives support multiple LBAF profiles (typically supporting
512-byte and 4096-byte sector size). Some broken Opal NVMe firmware can
report bogus encryption size that disagrees with real used sector size.
This usually happens after low-level NVMe reformatting (LBAF profile
change with nvme utility) to different sector size.
Moreover, some firmware versions do not properly reset this even after
explicit PSID revert.
Cryptsetup calculates the Opal locking range using the reported block
size in Opal geometry ioctl. Unfortunately, the broken firmware drive
internally uses the logical block size of the block device, which can
differ. This can lead to two possible situations:
- Opal reports a smaller block size (512-byte) while the drive uses
a 4096-byte sector. The configured locking range is then much larger,
destroying data following the expected locking range setting.
- Opal reports a larger block size (4096-byte) while the drive uses
a 512-byte sector. The configured locking range is then much smaller,
leaving the remaining space in the locking range unencrypted (violating
the confidentiality of data).
Cryptsetup now detects this discrepancy and disallows LUKS2 format with
Opal hardware encryption in such a case.
For already formatted devices, you will see this warning:
"Bogus OPAL logical block size differs from device block size."
If you also used software encryption (dm-crypt over Opal), data will
still be fully encrypted with software dm-crypt.
With hw-only encryption, your configuration is probably already broken
(insecure or accessing data beyond the assigned area).
Note that this is caused by bad firmware (seen with multiple vendors),
and the problem was reported, at least for drives we have access to.
* Fixes to wiping LUKS2 headers after Opal locking area erase.
As the hardware locking range is destroyed (cryptsetup erase command),
the LUKS2 header is no longer usable and was partially wiped.
Now the code fully wipes also the secondary header, as the previous
code wiped only the primary LUKS area.
Note that this is an exception, as the normal erase command wipes only
the keyslots, keeping the LUKS2 header in place. With Opal encryption,
the data segment is no longer valid, so the whole LUKS2 header is no
longer usable.
* Mention the need for possible PSID revert before Opal format for some
drives (man page).
* Fix Bitlocker-compatible code to ignore newly seen metadata entries.
Recent Windows OS versions started to include new (undocumented)
metadata entries in Bitlocker. These entries are now quietly ignored,
allowing Bitlocker images to open with cryptsetup again.
* Fix interactive query retry if LUKS2 unbound keyslot is present.
If an unbound keyslot is present, the password query retry count is
now properly applied.
* Detect unsupported zoned devices for LUKS header devices.
Zoned devices cannot be written with direct-io and used for LUKS header
logic in general. Code now rejects placing the LUKS header on a zoned
device, while you can still create a detached header and use a zoned
device for encrypted data.
* Allow "capi" cipher format for benchmark command and fix parsing
of plain IV in "capi" format.
Some ciphers can be specified only in Linux kernel crypto notation
(in short, "capi"). Code now allows this format also for benchmark,
for example, "benchmark -c capi:xts\(aes\)-plain64"
(that is equivalent to -c aes-xts-plain64).
* Add support for HCTR2 encryption mode.
The HCTR2 encryption mode was added to the Linux kernel for fscrypt,
but as it is a length-preserving mode (with sector tweak), it can be
easily used for disk encryption, too.
The mode has the same property as wide modes (any change is propagated
to the whole sector instead of only one block as in XTS mode).
As it needs a larger initialization vector (32 bytes), we need to add
an exception in the userspace format code.
You can now use --cipher aes-hctr2-plain64 for the format operation.
* Source code now uses SPDX license identifiers instead of full
license preambles.
* Fix missing includes for cryptographic backend that could cause
compilation errors for some systems.
* Fix tests to work correctly in FIPS mode with recent OpenSSL 3.2.
* Fix various (mostly false positive) issues detected by Coverity.
OpenPGP_0xD9B0577BD93E98FC.asc
(application/pgp-keys, 4.6 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 =VXKq -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEKikYJD/eRmSNBob52bBXe9k+mPwFAmZwMbEACgkQ2bBXe9k+ mPxPTg//V3m6Z1Flov8qgxsIiqO2/QPWCr34CUMJ7BK8gED8fdSk1/E+/L0o8nTs 4F+29BjjIgvG/qfhN2IPpQhASOGvTc0zvLEB/bLmbkWbVq284MUy+qNcfP2XoD1t G+VA8N29brJmqU/DrLBX6gaumZV9vHW1mvdH5XDSkIii16hFfXxAki0V3qkCDoOT Z3Oi/ut3wwqGfBqnvZVoa01AhnR2omJMJqWdpfgYvxtJlVFJ5Usx80LqZH8IgESx GWyW+kYUL6MkhJnsvD97NZ7zZjZgiL7lYEeks5zOP/gLS/9f120k3OC5GIBPGfVG zHDpUaTQyfvcqTTzGfgFqNhEho7BhPjEyXKLjMWUIZvtcP5OPqHGfmvtDA/HQorJ +Zmihjm/YRYjA23EkCqaKlv++FsXlIP+//eU1+VT7rx1/ZLMhGW2rGLhEVXi+nsH 4u6mKdCS1AVoGtY6w8hSd3pPRAOC87uWTya1vVdaZfh8A+ZCbmNSx6V63DC4Rhaa ztMPP25BtB36lumGvW9yfgyKKIZH2AS0u6rPBKUQjl8BFSZjeJStaRy4nr86Q+on chszeKfkN37T+AR29wCfLdCMKQZQ7PoZhZ1W46GTqDOy3tIsE/6vS7JGCr4OrEXu YRKuMs8QC7Qd7r/ya6urooPleXua3eAZbooar+ZLwp5B/1h3AaQ= =evUa -----END PGP SIGNATURE-----