Skip to contentSkip to conversation

Warn users about machines with non-working WP bit

PATCH Pavel Machek 2 participants 3 messages Apr 3, 2002

lore
Share & tools
lore
#0 lore raw

Hi!

This might be good idea, as those machines are not safe for multiuser systems.

arch/i386/mm/init.c +1 -1
@@ -383,7 +383,7 @@
 	local_flush_tlb();
 
 	if (!boot_cpu_data.wp_works_ok) {
-		printk("No.\n");
+		printk("No (that's security hole).\n");
 #ifdef CONFIG_X86_WP_WORKS_OK
 		panic("This kernel doesn't support CPU's with broken WP. Recompile it for a 386!");
 #endif

Pavel

Signature · 2 lines
(about SSSCA) "I don't say this lightly.  However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa
#1 lore raw
Quoted 18 lines · Pavel Machek

Hi!

This might be good idea, as those machines are not safe for multiuser systems.

arch/i386/mm/init.c Mon Mar 11 21:49:14 2002 renamed from arch/i386/mm/init.c Sun Mar 10 20:06:31 2002 +1 -1
@@ -383,7 +383,7 @@
        local_flush_tlb();
 
        if (!boot_cpu_data.wp_works_ok) {
-               printk("No.\n");
+               printk("No (that's security hole).\n");
 #ifdef CONFIG_X86_WP_WORKS_OK
                panic("This kernel doesn't support CPU's with broken WP. Recompile it for a 386!");
 #endif
Quoted 1 line

Pavel

The "bug" is really the lack of a feature present on 486+ cpus. A 386 will allow the kernel to write to a write-protected user page (but not a write-protected kernel page). In user mode, write protect works as it should. The kernel works around this by doing extra checks when writing to user pages (check the *_user() functions). It is not a security hole, because if the kernel wasn't compiled with the workaround, it refuses to boot on those cpus.

--

Brian Gerst

#2 lore raw
In reply to Pavel Machek

Hi!

Quoted 15 lines
Quoted 15 lines

This might be good idea, as those machines are not safe for multiuser systems.

arch/i386/mm/init.c Mon Mar 11 21:49:14 2002 renamed from arch/i386/mm/init.c Sun Mar 10 20:06:31 2002 +1 -1
@@ -383,7 +383,7 @@
        local_flush_tlb();
 
        if (!boot_cpu_data.wp_works_ok) {
-               printk("No.\n");
+               printk("No (that's security hole).\n");
 #ifdef CONFIG_X86_WP_WORKS_OK
                panic("This kernel doesn't support CPU's with broken WP. Recompile it for a 386!");
 #endif
Quoted 7 lines
Quoted 1 line

Pavel

The "bug" is really the lack of a feature present on 486+ cpus. A 386 will allow the kernel to write to a write-protected user page (but not a write-protected kernel page). In user mode, write protect works as it should. The kernel works around this by doing extra checks when writing to user pages (check the *_user() functions). It is not a security

It is, because those checks are racy when clone() is in use. Linus stated that few times.
Pavel

Signature · 2 lines
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.