John Reiser
a25c20ee0b
M_LZMA with hi parameter bytes confused --ultra-brute
...
https://github.com/upx/upx/issues/900
modified: packhead.cpp
modified: p_lx_elf.cpp
2025-03-20 09:48:00 -07:00
John Reiser
ff75a462a4
Fighting over .e_shentsize
...
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_lx_elf.cpp
2025-03-18 13:48:19 -07:00
John Reiser
e0b6ff1924
More checking in unpack()
...
https://github.com/upx/upx/issues/898
modified: p_lx_elf.cpp
2025-03-18 08:40:08 -07:00
John Reiser
1c5fae74e0
Fix recovery of readlink() when /proc/self/exe is missing
...
https://github.com/upx/upx/issues/897
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/arm.v4a-linux.elf-fold.S
plus generated .h
2025-03-16 12:37:57 -07:00
John Reiser
6f650ca16f
mips memfd_create() and syscall error handling
...
https://github.com/upx/upx/issues/895
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
plus generated .h .dump .map
2025-03-13 08:07:26 -07:00
Markus F.X.J. Oberhumer
c2da21ba4e
CI updates
2025-03-05 12:13:21 +01:00
John Reiser
903ca50391
Workaround valgrind-3.24.0 botch of 'notrack' on i386
...
https://github.com/upx/upx/issues/890
modified: stub/src/i386-linux.elf-fold.S
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map
2025-03-02 14:30:50 -08:00
John Reiser
70f1ab8cb7
Nice message for ancient Linux lacking memfd_create
...
... or O_TMPFILE for recovery using /dev/shm
https://github.com/upx/upx/issues/889
modified: stub/src/upxfd_linux.c
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
plus generated .h .map .dump
2025-03-02 11:46:17 -08:00
John Reiser
6998449715
Remove inline syscalls from MIPS stubs
...
They were a maintenance headache, especially for error handling.
modified: stub/src/i386-linux.elf-entry.S
modified: stub/src/i386-linux.elf-main2.c
modified: stub/src/include/linux.h
modified: stub/src/mips.r3000-expand.S
modified: stub/src/mipsel.r3000-linux.elf-entry.S
modified: stub/src/mipsel.r3000-linux.elf-fold.S
modified: stub/src/upxfd_android.c
2025-03-02 11:32:49 -08:00
John Reiser
fb0f6c6a00
Escape hatch needs 'notrack' to enter
...
modified: stub/src/amd64-linux.elf-fold.S
modified: stub/src/i386-linux.elf-fold.S
2025-03-02 11:22:05 -08:00
John Reiser
dbde75028c
Avoid corrupted P_hdr
...
https://issues.oss-fuzz.com/u/1/issues/398127991
modified: p_lx_elf.cpp
2025-03-02 11:12:08 -08:00
John Reiser
90d86ea59e
Prevent leak even if corrupted input
...
https://issues.oss-fuzz.com/u/1/issues/42531955
modified: pefile.cpp
2025-02-27 17:10:52 -08:00
John Reiser
64891286ba
Unpack: better checking of bounds for DT_HASH
...
https://issues.oss-fuzz.com/u/1/issues/398075916
modified: p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
John Reiser
e52a3ceb48
Unpack: Entire ElfXX_Ehdr must be present in de-compressed Ehdr+Phdrs
...
https://issues.oss-fuzz.com/u/1/issues/397728078
(previous commit: https://issues.oss-fuzz.com/u/1/issues/397500915 )
modified: p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
John Reiser
8cce9cf641
Detect bad b_info.method
...
https://issues.oss-fuzz.com/u/1/issues?q=upx
modified: p_lx_elf.cpp
modified: p_unix.cpp
modified: packhead.cpp
modified: packhead.h
2025-02-22 07:55:14 -08:00
Markus F.X.J. Oberhumer
896dff9619
src/check: some toolchains are buggy
2025-02-22 06:43:28 +01:00
Markus F.X.J. Oberhumer
84a0347df1
testsuite: update checksums caused by version bump
2025-02-21 00:12:41 +01:00
Markus F.X.J. Oberhumer
fc5e44f391
all: post-release version bump
2025-02-20 23:56:24 +01:00
Markus F.X.J. Oberhumer
8bf49aa4f2
all: prepare for release
2025-02-20 16:02:44 +01:00
Markus F.X.J. Oberhumer
b8079bb6eb
CI updates
2025-02-19 16:45:44 +01:00
John Reiser
5dcad7a387
Mention ELF work
...
modified: NEWS
2025-02-18 08:26:30 -08:00
John Reiser
83e5f74b3d
Compiler different type checking
...
modified: p_lx_elf.cpp
2025-02-17 09:39:55 -08:00
John Reiser
3d402134f5
Better checking of DT_GNU_HASH during de-compression
...
https://issues.oss-fuzz.com/u/1/issues/396167884
modified: p_lx_elf.cpp
2025-02-17 09:14:19 -08:00
John Reiser
b8b64a3e0f
Fuzz nuisance: wild p_info for de-compression
...
https://issues.oss-fuzz.com/u/1/issues/383200048
modified: p_lx_elf.cpp
2025-02-17 08:26:17 -08:00
John Reiser
c0bf7bf9ab
Old powerpc* kernels lack MFD_EXEC
...
For example: Debian 3.16.43-2+deb8u5 (2017-09-19)
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: stub/Makefile
modified: stub/src/powerpc-linux.elf-entry.S
modified: stub/src/powerpc-linux.elf-fold.S
modified: stub/src/powerpc64-linux.elf-entry.S
modified: stub/src/powerpc64-linux.elf-fold.S
plus generated .h, .dump, .map
2025-02-16 15:33:58 -08:00
John Reiser
0144f81c28
Cleanup stub for arm64 shared library
...
modified: stub/arm64-linux.elf-so_entry.h
modified: stub/src/arm64-linux.elf-so_entry.S
2025-02-16 08:41:50 -08:00
John Reiser
78f4959521
Fix de-compression of ELF shared libraries
...
Reset ph.method on each b_info.b_method.
Use file_image[] as ReadOnly, subsuming fi->seek()+read().
Use lowmem[0, +xct_off) for changing values.
Work on un_DT_INIT().
https://github.com/upx/upx/issues/882
modified: p_lx_elf.cpp
modified: p_lx_elf.h
modified: p_unix.cpp
2025-02-15 19:35:21 -08:00
John Reiser
eff1ef2d70
Fix amd64 shared libraries
...
Inspired by https://github.com/upx/upx/issues/880
(https://github.com/microsoft/mimalloc.git on Linux)
but still need test case.
modified: p_lx_elf.cpp
modified: stub/amd64-linux.elf-so_entry.h
modified: stub/src/amd64-linux.elf-so_entry.S
2025-02-13 17:22:37 -08:00
John Reiser
782b07c752
PPC64 check ehdri.e_ident[EI_DATA], not elfout
...
modified: p_lx_elf.cpp
2025-02-12 08:56:18 -08:00
John Reiser
bd67677389
Honor dos_header_t.e_cparhdr for small header
...
... and cleanup PackDjgpp2::readFileHeader()
https://github.com/upx/upx/issues/881
modified: p_djgpp2.cpp
modified: p_djgpp2.h
2025-02-11 10:29:53 -08:00
John Reiser
8c9e04daaf
Propagate .e_ident[EI_ABIVERSION]
...
Linux on bare metal (and explicit qemu) seems not to care,
but qemu-user-binfmt gives ENOEXEC (Exec format error)
https://github.com/upx/upx/issues/876
2025-02-07 19:24:46 -08:00
John Reiser
bddc05e787
Fix elf_lookup() defenses against fuzzed DT_HASH
...
modified: p_lx_elf.cpp
2025-02-01 13:22:26 -08:00
John Reiser
a49d023bd0
Detect too-short Mach_command, also be careful in recovery
...
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
https://github.com/upx/upx/issues/875
https://github.com/upx/upx/issues/874
modified: p_mach.cpp
2025-01-31 11:34:48 -08:00
John Reiser
7b06ba0b78
Detect empty DT_STRTAB
...
https://github.com/upx/upx/issues/872
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
modified: p_lx_elf.cpp
2025-01-31 11:32:48 -08:00
John Reiser
344b73dab0
invert_pt_dynamic defends against missing DT_STRTAB or DT_STRSIZ
...
https://github.com/upx/upx/issues/872
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
modified: p_lx_elf.cpp
2025-01-30 11:42:09 -08:00
John Reiser
0870514194
elf_lookup must defend against bad chain in hash table
...
https://github.com/upx/upx/issues/871
fuzzing from leon.weiss AT @ruhr-uni-bochum.de
2025-01-30 10:56:45 -08:00
Markus F.X.J. Oberhumer
0a61ffea3a
submodules: update for new versions
2025-01-30 00:05:15 +01:00
Markus F.X.J. Oberhumer
fbc650791d
CI updates
2025-01-29 22:19:21 +01:00
Markus F.X.J. Oberhumer
4b41aa1226
CI updates
2025-01-29 16:11:03 +01:00
Markus F.X.J. Oberhumer
3fd68d3ec6
CI updates
2025-01-27 18:11:44 +01:00
John Reiser
d41ceb0d31
ARM64: move Psync closer to PAGE_MASK
...
and use 'bic' instead of 'and'
modified: stub/arm64-linux.elf-so_fold.h
modified: stub/src/arm64-linux.elf-so_fold.S
2025-01-26 18:43:14 -08:00
John Reiser
aee970e80b
Allow empty .rsrc Section in PE file
...
https://github.com/upx/upx/issues/869
modified: pefile.cpp
2025-01-24 07:45:05 -08:00
Markus F.X.J. Oberhumer
ef8a24ba53
CI updates. Closes #862 .
2025-01-21 21:16:01 +01:00
Markus F.X.J. Oberhumer
2edf91d315
testsuite: update checksums caused by version bump
2025-01-17 22:06:55 +01:00
Markus F.X.J. Oberhumer
9fe377b288
all: version bump
2025-01-17 21:50:38 +01:00
Markus F.X.J. Oberhumer
996ca8d17d
all: welcome 2025
2025-01-17 21:18:55 +01:00
Markus F.X.J. Oberhumer
b356595eb5
CI updates
2025-01-17 21:15:43 +01:00
Markus F.X.J. Oberhumer
e4668e5328
CI updates
2025-01-08 12:57:52 +01:00
John Reiser
a846e483be
clang-format uglifies again
...
modified: p_w64pe_amd64.cpp
2025-01-02 12:05:59 -08:00
John Reiser
f6e3df69eb
stub/amd64-win64.pe.h matches upx-v4.2.4
...
so that anti-virus checkers of apps for 64-bit Windows that are newly-
compressed by upx should not complain about new matches with malware.
This costs a few bytes and a small fraction of cycles in NRV2
de-compressors, but is considered to be a tolerable concession
to the cesspool environment of software for Microsoft Windows.
modified: ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
modified: p_w64pe_amd64.cpp see code comments
modified: stub/amd64-win64.pe.h
modified: stub/src/arch/amd64/lzma_d.S see code comments
modified: stub/src/arch/amd64/nrv2b_d.S
modified: stub/src/arch/amd64/nrv2d_d.S
modified: stub/src/arch/amd64/nrv2e_d.S
modified: stub/tmp/amd64-win64.pe.bin.dump
2025-01-02 11:47:34 -08:00