On Mon 2015-12-14 13:24:08, Arjan van de Ven wrote: > > >That's weird. The only API to do that seems to be manually setting > >kmap_prot to _PAGE_KERNEL_EXEC, and nothing does that. (Why is > >kmap_prot a variable on x86 at all? It has exactly one writer, and > >that's the code that initializes it in the first place. Shouldn't we > >#define kmap_prot _PAGE_KERNEL? > > iirc it changes based on runtime detection of NX capability
Huh. Is it possible that core duo is so old that it has no NX? processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 14 model name : Genuine Intel(R) CPU T2400 @ 1.83GHz stepping : 8 microcode : 0x39 ... wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dtherm No, it lists nx in flags. Linus asked me about trying without CONFIG_EFI. I should have no EFI here, but I'll try it. I turned off CONFIG_EFI, but CONFIG_UEFI_CPER can't seem to be disabled easily. Still: [ 3.269750] WARNING: CPU: 1 PID: 1 at arch/x86/mm/dump_pagetables.c:225 note_page+0x5ec/0x790() [ 3.271999] x86/mm: Found insecure W+X mapping at address ffe69000/0xffe69000 pavel@duo:~$ zcat /proc/config.gz | grep EFI # CONFIG_EFI_PARTITION is not set # CONFIG_EFI is not set CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_UEFI_CPER=y pavel@duo:~$ Ok, I managed to turn off even CONFIG_UEFI_CPER after some fight, but result is the same. (Hmm... I'll probably regret it, but... I guess config.gz does contain some information useful for the attacker. How long till some "hardened distro" chmods it to 600?) Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/