ladybird/Libraries/LibELF
Andreas Kling 78a63930cc Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing
Before this, you could make the kernel copy memory from anywhere by
setting up an ELF executable with a program header specifying file
offsets outside the file.

Since ELFImage didn't even know how large it was, we had no clue that
we were copying things from outside the ELF.

Fix this by adding a size field to ELFImage and validating program
header ranges before memcpy()'ing to them.

The ELF code is definitely going to need more validation and checking.
2020-01-06 21:04:57 +01:00
..
Arch/i386 LibELF: Re-organize ELFDynamicObject::load and add PLT trampoline 2020-01-01 23:54:06 +01:00
ELFDynamicLoader.cpp Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing 2020-01-06 21:04:57 +01:00
ELFDynamicLoader.h LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
ELFDynamicObject.cpp LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
ELFDynamicObject.h LibELF+LibC: Split ELFDynamicObject into a Loader + Object 2020-01-04 10:39:04 +01:00
ELFImage.cpp Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing 2020-01-06 21:04:57 +01:00
ELFImage.h Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing 2020-01-06 21:04:57 +01:00
ELFLoader.cpp Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing 2020-01-06 21:04:57 +01:00
ELFLoader.h Kernel+LibELF: Validate PT_LOAD and PT_TLS offsets before memcpy()'ing 2020-01-06 21:04:57 +01:00
exec_elf.h LibELF: Add ELFDynamicObject to dynamically load libaries 2020-01-01 17:48:41 +01:00
Makefile Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00