Skip to content

Commit c6f7c75

Browse files
Christoph HellwigAl Viro
authored andcommitted
lkdtm: remove set_fs-based tests
Once we can't manipulate the address limit, we also can't test what happens when the manipulation is abused. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent 81b1e24 commit c6f7c75

5 files changed

Lines changed: 0 additions & 31 deletions

File tree

drivers/misc/lkdtm/bugs.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,16 +312,6 @@ void lkdtm_CORRUPT_LIST_DEL(void)
312312
pr_err("list_del() corruption not detected!\n");
313313
}
314314

315-
/* Test if unbalanced set_fs(KERNEL_DS)/set_fs(USER_DS) check exists. */
316-
void lkdtm_CORRUPT_USER_DS(void)
317-
{
318-
pr_info("setting bad task size limit\n");
319-
set_fs(KERNEL_DS);
320-
321-
/* Make sure we do not keep running with a KERNEL_DS! */
322-
force_sig(SIGKILL);
323-
}
324-
325315
/* Test that VMAP_STACK is actually allocating with a leading guard page */
326316
void lkdtm_STACK_GUARD_PAGE_LEADING(void)
327317
{

drivers/misc/lkdtm/core.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ static const struct crashtype crashtypes[] = {
112112
CRASHTYPE(CORRUPT_STACK_STRONG),
113113
CRASHTYPE(CORRUPT_LIST_ADD),
114114
CRASHTYPE(CORRUPT_LIST_DEL),
115-
CRASHTYPE(CORRUPT_USER_DS),
116115
CRASHTYPE(STACK_GUARD_PAGE_LEADING),
117116
CRASHTYPE(STACK_GUARD_PAGE_TRAILING),
118117
CRASHTYPE(UNSET_SMEP),
@@ -172,7 +171,6 @@ static const struct crashtype crashtypes[] = {
172171
CRASHTYPE(USERCOPY_STACK_FRAME_FROM),
173172
CRASHTYPE(USERCOPY_STACK_BEYOND),
174173
CRASHTYPE(USERCOPY_KERNEL),
175-
CRASHTYPE(USERCOPY_KERNEL_DS),
176174
CRASHTYPE(STACKLEAK_ERASING),
177175
CRASHTYPE(CFI_FORWARD_PROTO),
178176
#ifdef CONFIG_X86_32

drivers/misc/lkdtm/lkdtm.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ void lkdtm_OVERFLOW_UNSIGNED(void);
2727
void lkdtm_ARRAY_BOUNDS(void);
2828
void lkdtm_CORRUPT_LIST_ADD(void);
2929
void lkdtm_CORRUPT_LIST_DEL(void);
30-
void lkdtm_CORRUPT_USER_DS(void);
3130
void lkdtm_STACK_GUARD_PAGE_LEADING(void);
3231
void lkdtm_STACK_GUARD_PAGE_TRAILING(void);
3332
void lkdtm_UNSET_SMEP(void);
@@ -96,7 +95,6 @@ void lkdtm_USERCOPY_STACK_FRAME_TO(void);
9695
void lkdtm_USERCOPY_STACK_FRAME_FROM(void);
9796
void lkdtm_USERCOPY_STACK_BEYOND(void);
9897
void lkdtm_USERCOPY_KERNEL(void);
99-
void lkdtm_USERCOPY_KERNEL_DS(void);
10098

10199
/* lkdtm_stackleak.c */
102100
void lkdtm_STACKLEAK_ERASING(void);

drivers/misc/lkdtm/usercopy.c

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -325,21 +325,6 @@ void lkdtm_USERCOPY_KERNEL(void)
325325
vm_munmap(user_addr, PAGE_SIZE);
326326
}
327327

328-
void lkdtm_USERCOPY_KERNEL_DS(void)
329-
{
330-
char __user *user_ptr =
331-
(char __user *)(0xFUL << (sizeof(unsigned long) * 8 - 4));
332-
mm_segment_t old_fs = get_fs();
333-
char buf[10] = {0};
334-
335-
pr_info("attempting copy_to_user() to noncanonical address: %px\n",
336-
user_ptr);
337-
set_fs(KERNEL_DS);
338-
if (copy_to_user(user_ptr, buf, sizeof(buf)) == 0)
339-
pr_err("copy_to_user() to noncanonical address succeeded!?\n");
340-
set_fs(old_fs);
341-
}
342-
343328
void __init lkdtm_usercopy_init(void)
344329
{
345330
/* Prepare cache that lacks SLAB_USERCOPY flag. */

tools/testing/selftests/lkdtm/tests.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ EXCEPTION
99
#CORRUPT_STACK_STRONG Crashes entire system on success
1010
CORRUPT_LIST_ADD list_add corruption
1111
CORRUPT_LIST_DEL list_del corruption
12-
CORRUPT_USER_DS Invalid address limit on user-mode return
1312
STACK_GUARD_PAGE_LEADING
1413
STACK_GUARD_PAGE_TRAILING
1514
UNSET_SMEP CR4 bits went missing
@@ -67,6 +66,5 @@ USERCOPY_STACK_FRAME_TO
6766
USERCOPY_STACK_FRAME_FROM
6867
USERCOPY_STACK_BEYOND
6968
USERCOPY_KERNEL
70-
USERCOPY_KERNEL_DS
7169
STACKLEAK_ERASING OK: the rest of the thread stack is properly erased
7270
CFI_FORWARD_PROTO

0 commit comments

Comments
 (0)