From 1107712e372f7593ad729764c0c2644d0e4aa675 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Mon, 8 Apr 2024 15:32:58 +0300 Subject: [PATCH] Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). While the backdoor was inactive (and thus harmless) without inserting a small trigger code into the build system when the source package was created, it's good to remove this anyway: - The executable payloads were embedded as binary blobs in the test files. This was a blatant violation of the Debian Free Software Guidelines. - On machines that see lots bots poking at the SSH port, the backdoor noticeably increased CPU load, resulting in degraded user experience and thus overwhelmingly negative user feedback. - The maintainer who added the backdoor has disappeared. - Backdoors are bad for security. This reverts the following without making any other changes: 6e636819 Tests: Update two test files. a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. 0b4ccc91 Tests: Update RISC-V test files. 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. 82ecc538 liblzma: Fix false Valgrind error report with GCC. cf44e4b7 Tests: Add a few test files. 3060e107 Tests: Use smaller dictionary size in RISC-V test files. e2870db5 Tests: Add two RISC-V Filter test files. The RISC-V test files also have real content that tests the filter but the real content would fit into much smaller files. A generator program would need to be available as well. Thanks to Andres Freund for finding and reporting it and making it public quickly so others could act without a delay. See: https://www.openwall.com/lists/oss-security/2024/03/29/4 --- src/liblzma/check/crc32_fast.c | 7 +++++-- src/liblzma/check/crc64_fast.c | 4 +++- src/liblzma/check/crc_common.h | 25 ----------------------- tests/files/README | 27 ------------------------- tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes tests/files/good-2cat.xz | Bin 136 -> 0 bytes tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes tests/test_files.sh | 11 ---------- 12 files changed, 8 insertions(+), 66 deletions(-) delete mode 100644 tests/files/bad-3-corrupt_lzma2.xz delete mode 100644 tests/files/bad-dict_size.lzma delete mode 100644 tests/files/good-1-riscv-lzma2-1.xz delete mode 100644 tests/files/good-1-riscv-lzma2-2.xz delete mode 100644 tests/files/good-2cat.xz delete mode 100644 tests/files/good-large_compressed.lzma delete mode 100644 tests/files/good-small_compressed.lzma diff --git a/src/liblzma/check/crc32_fast.c b/src/liblzma/check/crc32_fast.c index bfa295a0..079051f1 100644 --- a/src/liblzma/check/crc32_fast.c +++ b/src/liblzma/check/crc32_fast.c @@ -135,8 +135,11 @@ typedef uint32_t (*crc32_func_type)( // This resolver is shared between all three dispatch methods. It serves as // the ifunc resolver if ifunc is supported, otherwise it is called as a // regular function by the constructor or first call resolution methods. -// The function attributes are needed for safe IFUNC resolver usage with GCC. -lzma_resolver_attributes +// The __no_profile_instrument_function__ attribute support is checked when +// determining if ifunc can be used, so it is safe to use here. +#ifdef CRC_USE_IFUNC +__attribute__((__no_profile_instrument_function__)) +#endif static crc32_func_type crc32_resolve(void) { diff --git a/src/liblzma/check/crc64_fast.c b/src/liblzma/check/crc64_fast.c index 52cddb2c..5728b45e 100644 --- a/src/liblzma/check/crc64_fast.c +++ b/src/liblzma/check/crc64_fast.c @@ -98,7 +98,9 @@ typedef uint64_t (*crc64_func_type)( # pragma GCC diagnostic ignored "-Wunused-function" #endif -lzma_resolver_attributes +#ifdef CRC_USE_IFUNC +__attribute__((__no_profile_instrument_function__)) +#endif static crc64_func_type crc64_resolve(void) { diff --git a/src/liblzma/check/crc_common.h b/src/liblzma/check/crc_common.h index 5a86556f..856665db 100644 --- a/src/liblzma/check/crc_common.h +++ b/src/liblzma/check/crc_common.h @@ -128,31 +128,6 @@ # endif #endif -#ifdef CRC_USE_IFUNC -// Two function attributes are needed to make IFUNC safe with GCC. -// -// no-omit-frame-pointer prevents false Valgrind issues when combined with -// a few other compiler flags. The optimize attribute is supported on -// GCC >= 4.4 and is not supported with Clang. -# if TUKLIB_GNUC_REQ(4,4) && !defined(__clang__) -# define no_omit_frame_pointer \ - __attribute__((optimize("no-omit-frame-pointer"))) -# else -# define no_omit_frame_pointer -# endif - -// The __no_profile_instrument_function__ attribute support is checked when -// determining if ifunc can be used, so it is safe to use unconditionally. -// This attribute is needed because GCC can add profiling to the IFUNC -// resolver, which calls functions that have not yet been relocated leading -// to a crash on liblzma start up. -# define lzma_resolver_attributes \ - __attribute__((__no_profile_instrument_function__)) \ - no_omit_frame_pointer -#else -# define lzma_resolver_attributes -#endif - // For CRC32 use the generic slice-by-eight implementation if no optimized // version is available. #if !defined(CRC32_ARCH_OPTIMIZED) && !defined(CRC32_GENERIC) diff --git a/tests/files/README b/tests/files/README index e987a519..a3208459 100644 --- a/tests/files/README +++ b/tests/files/README @@ -41,8 +41,6 @@ good-0catpad-empty.xz has two zero-Block Streams concatenated with four-byte Stream Padding between the Streams. - good-2cat.xz has two Streams with one Block each. - good-1-check-none.xz has one Stream with one Block with two uncompressed LZMA2 chunks and no integrity check. @@ -83,14 +81,6 @@ good-1-arm64-lzma2-2.xz is like good-1-arm64-lzma2-1.xz but with non-zero start offset. XZ Embedded doesn't support this file. - good-1-riscv-lzma2-1.xz uses the RISC-V filter and LZMA2. The - uncompressed data is constructed so it tests all of the instructions - that should be encoded and a few that should not. Additionally, the - file contains random bytes to help test unforeseen corner cases. - - good-1-riscv-lzma2-2.xz is like good-1-riscv-lzma2-1.xz but with - non-zero start offset. XZ Embedded doesn't support this file. - good-1-lzma2-1.xz has two LZMA2 chunks, of which the second sets new properties. @@ -294,11 +284,6 @@ Uncompressed Size bytes of output will have been produced but the LZMA2 decoder doesn't indicate end of stream. - bad-3-corrupt_lzma2.xz has three Streams in it. The first and third - streams are valid xz Streams. The middle Stream has a correct Stream - Header, Block Header, Index and Stream Footer. Only the LZMA2 data - is corrupt. This file should decompress if --single-stream is used. - 3. Descriptions of Individual .lzma Files @@ -315,14 +300,6 @@ will give an error at the end of the file after producing the correct uncompressed output. - good-small_compressed.lzma was created with a small dictionary (2^16). - It contains the string "Hello World" repeated 100,000 times. This tests - match decoding and wrapping the dictionary. - - good-large_compressed.lzma was created with a mix of repeated - characters and random data to test a data stream containing many - matches and many literals. - 3.2. Bad Files @@ -344,10 +321,6 @@ bad-too_small_size-without_eopm-3.lzma is like -1 above but instead of a literal the problem occurs in the middle of a match. - bad-dict_size.lzma has a valid dictionary size according to the .lzma - File Format, but will be rejected by XZ Utils because it is not 2^n or - 2^n + 2^(n-1). - 4. Descriptions of Individual .lz (lzip) Files diff --git a/tests/files/bad-3-corrupt_lzma2.xz b/tests/files/bad-3-corrupt_lzma2.xz deleted file mode 100644 index f9ec69a2a02d4c8d2e95c936a45d4edf0704fd48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmexsUKJ6=z`*kC+7>q^21P~=1_p*3{K~?N3_Qv};E|e>lMiA5g&Bl8?z2P|H99dc zs`3^}9@!?p?Q<<7NP;CY>Mss+9X5nY_X8Yr@tk)(i zc;z`S!T!jxugm^Ui(a2tue(vYg|T_%vsH_i*zjen+x_lBo8sH=0h-HYr@a@Oa;4OJ zt;POpFP^t@Sxva}sI<@bJ&$ejxh1L$vt8d*DE(WpZF$_`;N25;8r001v`Ts<@2~W{ ziS?R0a=0VTmg{J6uF+BvR*+PzVfHfE#3V7}qJo0SgV}xeKWvPN?c)<@V|@SY*8Qqu zpZ~|}cmiFBXy;o#d%D{M%X*w4J z1J{(IMH`Q#|7HS7;t6j?23}Bfh36OLq<|Petqc_(xHZqD-@n1YsK&=3{eT5I-T?g+ B%_9H+ diff --git a/tests/files/bad-dict_size.lzma b/tests/files/bad-dict_size.lzma deleted file mode 100644 index f2ef5a586e5bd152acb45c98595b47aee93d8db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41 scma$3_g|jjKNK*CyVz7#4<1d0PqqOLI3~& diff --git a/tests/files/good-1-riscv-lzma2-1.xz b/tests/files/good-1-riscv-lzma2-1.xz deleted file mode 100644 index 85f3b756925fca4dee7f3eed0ae47e55dccc45bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7424 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 diff --git a/tests/files/good-1-riscv-lzma2-2.xz b/tests/files/good-1-riscv-lzma2-2.xz deleted file mode 100644 index 60d2403abc1294bc4a78e9381787ea2057d71657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7432 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 rQIRu8;^x8gMY-Rue#5*Uh diff --git a/tests/files/good-large_compressed.lzma b/tests/files/good-large_compressed.lzma deleted file mode 100644 index 878991f3509635013a73cd37ba4641f756221c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35421 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 diff --git a/tests/files/good-small_compressed.lzma b/tests/files/good-small_compressed.lzma deleted file mode 100644 index a2fe80220b58f76563b223bee1763edac9fd121d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa160Du7i|NsC0|NsC003;bnm~Rjf$Y18wkOYy}Houyo=Cy`%8hQ47rB=mj ztr+crwWw}MniO+&*La{g2OAhKg8tDtV0~U3fzZUjkGiH3={bmTr9qX*?%v5TiE2>P zcS%y2GjD-*)!xL>jH;IQuvMkTK9neCb^`N!I={QFWXbj==HAVT@wQ$6@8WC=Tf%PMT&wL9>{y)Iv>4?as~ zLXZ;<{}7Y-ad=ty3(fzPC`J#d{CwW~nlLU_z>kIVgMq+h#3fVs^^rC)1C=`OsZA6A I|L{)00OhlVX#fBK diff --git a/tests/test_files.sh b/tests/test_files.sh index 812b2152..16cb8619 100755 --- a/tests/test_files.sh +++ b/tests/test_files.sh @@ -149,17 +149,6 @@ else exit 1 fi -# Test that --single-stream can decompress bad-3-corrupt_lzma2.xz. -# The first Stream in this file should decompress without errors. -# This file cannot be decompressed with xzdec. -I="$srcdir/files/bad-3-corrupt_lzma2.xz" -if test -z "$XZ" || "$XZ" -dc --single-stream $NO_WARN "$I" > /dev/null; then - : -else - echo "Good first Stream failed xz with --single-stream: $I" - exit 1 -fi - ######### # .lzma #