Patch "lkdtm: Disable CFI checking for perms functions" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    lkdtm: Disable CFI checking for perms functions

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     lkdtm-disable-cfi-checking-for-perms-functions.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f9ffb01edbe64b8368ac9b8b7923113cc784f004
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date:   Tue Apr 30 16:49:57 2024 -0700

    lkdtm: Disable CFI checking for perms functions
    
    [ Upstream commit fb28a8862dc4b5bf8e44578338f35d9c6c68339d ]
    
    The EXEC_RODATA test plays a lot of tricks to live in the .rodata section,
    and once again ran into objtool's (completely reasonable) assumptions
    that executable code should live in an executable section. However, this
    manifested only under CONFIG_CFI_CLANG=y, as one of the .cfi_sites was
    pointing into the .rodata section.
    
    Since we're testing non-CFI execution properties in perms.c (and
    rodata.c), we can disable CFI for the involved functions, and remove the
    CFI arguments from rodata.c entirely.
    
    Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
    Closes: https://lore.kernel.org/oe-lkp/202308301532.d7acf63e-oliver.sang@xxxxxxxxx
    Fixes: 6342a20efbd8 ("objtool: Add elf_create_section_pair()")
    Link: https://lore.kernel.org/r/20240430234953.work.760-kees@xxxxxxxxxx
    Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/misc/lkdtm/Makefile b/drivers/misc/lkdtm/Makefile
index 95ef971b5e1cb..b28701138b4bc 100644
--- a/drivers/misc/lkdtm/Makefile
+++ b/drivers/misc/lkdtm/Makefile
@@ -19,7 +19,7 @@ KASAN_SANITIZE_rodata.o			:= n
 KCSAN_SANITIZE_rodata.o			:= n
 KCOV_INSTRUMENT_rodata.o		:= n
 OBJECT_FILES_NON_STANDARD_rodata.o	:= y
-CFLAGS_REMOVE_rodata.o			+= $(CC_FLAGS_LTO) $(RETHUNK_CFLAGS)
+CFLAGS_REMOVE_rodata.o			+= $(CC_FLAGS_LTO) $(RETHUNK_CFLAGS) $(CC_FLAGS_CFI)
 
 OBJCOPYFLAGS :=
 OBJCOPYFLAGS_rodata_objcopy.o	:= \
diff --git a/drivers/misc/lkdtm/perms.c b/drivers/misc/lkdtm/perms.c
index b93404d656509..5b861dbff27e9 100644
--- a/drivers/misc/lkdtm/perms.c
+++ b/drivers/misc/lkdtm/perms.c
@@ -61,7 +61,7 @@ static void *setup_function_descriptor(func_desc_t *fdesc, void *dst)
 	return fdesc;
 }
 
-static noinline void execute_location(void *dst, bool write)
+static noinline __nocfi void execute_location(void *dst, bool write)
 {
 	void (*func)(void);
 	func_desc_t fdesc;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux