|
|
Message-ID: <20120812181202.GA407@albatros>
Date: Sun, 12 Aug 2012 22:12:02 +0400
From: Vasily Kulikov <segoon@...nwall.com>
To: owl-dev@...ts.openwall.com
Subject: kernel's -fstack-protector
Hi,
RHEL6.3'ish kernel is able to use SSP of gcc, but currently doesn't do it:
/usr/src/world/kernel-config/linux-2.6.32/arch/x86/Makefile:81: stack protector enabled but no compiler support
Linux tests SSP by compiling a trivial program which uses array and examining
the result:
#!/bin/sh
echo "int foo(void) { char X[200]; return 3; }" | $* -S -xc -c -O0 -fstack-protector - -o - 2> /dev/null | grep -q "%gs"
if [ "$?" -eq "0" ] ; then
echo y
else
echo n
fi
Look for the difference between my host Ubuntu system and Owl's chroot:
--- /home/vasya/owl/gcc-ssp-1 2012-08-12 22:02:56.081192917 +0400
+++ /home/vasya/owl/gcc-ssp-2 2012-08-12 22:03:26.109341468 +0400
@@ -1,22 +1,31 @@
.file ""
.text
-.globl foo
+ .globl foo
.type foo, @function
foo:
+.LFB0:
+ .cfi_startproc
pushl %ebp
+ .cfi_def_cfa_offset 8
+ .cfi_offset 5, -8
movl %esp, %ebp
+ .cfi_def_cfa_register 5
subl $216, %esp
- movl %gs:20, %eax
+ movl __stack_chk_guard, %eax
movl %eax, -12(%ebp)
xorl %eax, %eax
movl $3, %eax
movl -12(%ebp), %edx
- xorl %gs:20, %edx
- je .L3
+ xorl __stack_chk_guard, %edx
+ je .L2
call __stack_chk_fail
-.L3:
+.L2:
leave
+ .cfi_restore 5
+ .cfi_def_cfa 4, 4
ret
+ .cfi_endproc
+.LFE0:
.size foo, .-foo
- .ident "GCC: (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3"
+ .ident "GCC: (GNU) 4.6.2"
.section .note.GNU-stack,"",@progbits
---
The most interesting lines are:
- movl %gs:20, %eax
+ movl __stack_chk_guard, %eax
Owl's gcc doesn't use %gs, but uses a global symbol. That's because our glibc
doesn't support any sort of SSP and gcc fallbacks to using global symbol.
That is a gcc compilation stage choice, so we cannot explicitly enable it for
the kernel until glibc upgrade.
So, for now we don't use SSP for the kernel.
Thanks,
--
Vasily
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.