Gentoo Archives: gentoo-hardened

From: "Amadeusz Sławiński" <amade@××××××.net>
To: gentoo-hardened@l.g.o
Subject: Re: [gentoo-hardened] "grsec: denied RWX mprotect" doesn't kill app anymore
Date: Sat, 01 Nov 2014 10:21:43
Message-Id: 20141101112151.5b6d7a07@maelstrom.zone
In Reply to: [gentoo-hardened] "grsec: denied RWX mprotect" doesn't kill app anymore by Alex Efros
1 On Sat, 1 Nov 2014 12:08:23 +0200
2 Alex Efros <powerman@××××××××.name> wrote:
3
4 > Hi!
5 >
6 > I wonder is something was changed in handling "grsec: denied RWX
7 > mprotect"? Previously when I see this in kernel log it usually result
8 > in killing app (and I've to run `paxctl-ng -m /that/app`), but now it
9 > looks like this doesn't happens anymore. For example:
10 >
11
12 https://bugs.freedesktop.org/show_bug.cgi?id=73473
13
14 OpenGL apps fallback to software rendering if they can't mmap
15 executable memory.
16
17 > # eselect opengl list
18 > Available OpenGL implementations:
19 > [1] nvidia *
20 > [2] xorg-x11
21 > # grep PAX /etc/portage/make.conf
22 > PAX_MARKINGS="XT"
23 > # paxctl-ng -v /usr/bin/glxgears
24 > /usr/bin/glxgears:
25 > PT_PAX : -e---
26 > XATTR_PAX : not found
27 > # /usr/bin/glxgears
28 > Running synchronized to the vertical refresh. The framerate should be
29 > approximately the same as the monitor refresh rate.
30 > 302 frames in 5.0 seconds = 60.336 FPS
31 > 300 frames in 5.0 seconds = 59.960 FPS
32 > (so, as you see, it works!)
33 >
34 > and here is kernel log:
35 >
36 > 2014-11-01_10:00:19.58867 kern.alert: grsec: denied RWX mprotect
37 > of /usr/lib64/opengl/nvidia/lib/libGL.so.343.22
38 > by /usr/bin/glxgears[glxgears:12208] uid/euid:0/0 gid/egid:0/0,
39 > parent /bin/bash[bash:8601] uid/euid:0/0 gid/egid:0/0
40 >
41 > At same time paxtest works ok (all killed).
42 >
43 >
44 > My kernel config:
45 >
46 > # zgrep PAX /proc/config.gz
47 >
48 > CONFIG_PAX_USERCOPY_SLABS=y
49 > CONFIG_PAX=y
50 > # CONFIG_PAX_SOFTMODE is not set
51 > # CONFIG_PAX_PT_PAX_FLAGS is not set
52 > CONFIG_PAX_XATTR_PAX_FLAGS=y
53 > CONFIG_PAX_NO_ACL_FLAGS=y
54 > # CONFIG_PAX_HAVE_ACL_FLAGS is not set
55 > # CONFIG_PAX_HOOK_ACL_FLAGS is not set
56 > CONFIG_PAX_NOEXEC=y
57 > CONFIG_PAX_PAGEEXEC=y
58 > CONFIG_PAX_EMUTRAMP=y
59 > CONFIG_PAX_MPROTECT=y
60 > # CONFIG_PAX_MPROTECT_COMPAT is not set
61 > # CONFIG_PAX_ELFRELOCS is not set
62 > # CONFIG_PAX_KERNEXEC is not set
63 > CONFIG_PAX_KERNEXEC_PLUGIN_METHOD=""
64 > CONFIG_PAX_ASLR=y
65 > # CONFIG_PAX_RANDKSTACK is not set
66 > CONFIG_PAX_RANDUSTACK=y
67 > CONFIG_PAX_RANDMMAP=y
68 > # CONFIG_PAX_MEMORY_SANITIZE is not set
69 > # CONFIG_PAX_MEMORY_STACKLEAK is not set
70 > CONFIG_PAX_MEMORY_STRUCTLEAK=y
71 > # CONFIG_PAX_MEMORY_UDEREF is not set
72 > CONFIG_PAX_REFCOUNT=y
73 > CONFIG_PAX_USERCOPY=y
74 > # CONFIG_PAX_USERCOPY_DEBUG is not set
75 > # CONFIG_PAX_SIZE_OVERFLOW is not set
76 > # CONFIG_PAX_LATENT_ENTROPY is not set
77 >
78 > # zgrep GRKERNSEC /proc/config.gz
79 >
80 > CONFIG_GRKERNSEC=y
81 > # CONFIG_GRKERNSEC_CONFIG_AUTO is not set
82 > CONFIG_GRKERNSEC_CONFIG_CUSTOM=y
83 > CONFIG_GRKERNSEC_PROC_GID=1000
84 > CONFIG_GRKERNSEC_KMEM=y
85 > # CONFIG_GRKERNSEC_IO is not set
86 > CONFIG_GRKERNSEC_PERF_HARDEN=y
87 > CONFIG_GRKERNSEC_RAND_THREADSTACK=y
88 > CONFIG_GRKERNSEC_PROC_MEMMAP=y
89 > # CONFIG_GRKERNSEC_KSTACKOVERFLOW is not set
90 > # CONFIG_GRKERNSEC_BRUTE is not set
91 > CONFIG_GRKERNSEC_MODHARDEN=y
92 > CONFIG_GRKERNSEC_HIDESYM=y
93 > # CONFIG_GRKERNSEC_RANDSTRUCT is not set
94 > # CONFIG_GRKERNSEC_KERN_LOCKOUT is not set
95 > CONFIG_GRKERNSEC_NO_RBAC=y
96 > CONFIG_GRKERNSEC_ACL_HIDEKERN=y
97 > CONFIG_GRKERNSEC_ACL_MAXTRIES=3
98 > CONFIG_GRKERNSEC_ACL_TIMEOUT=30
99 > CONFIG_GRKERNSEC_PROC=y
100 > # CONFIG_GRKERNSEC_PROC_USER is not set
101 > CONFIG_GRKERNSEC_PROC_USERGROUP=y
102 > CONFIG_GRKERNSEC_PROC_ADD=y
103 > CONFIG_GRKERNSEC_LINK=y
104 > # CONFIG_GRKERNSEC_SYMLINKOWN is not set
105 > CONFIG_GRKERNSEC_FIFO=y
106 > # CONFIG_GRKERNSEC_SYSFS_RESTRICT is not set
107 > # CONFIG_GRKERNSEC_ROFS is not set
108 > CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y
109 > CONFIG_GRKERNSEC_CHROOT=y
110 > CONFIG_GRKERNSEC_CHROOT_MOUNT=y
111 > CONFIG_GRKERNSEC_CHROOT_DOUBLE=y
112 > CONFIG_GRKERNSEC_CHROOT_PIVOT=y
113 > CONFIG_GRKERNSEC_CHROOT_CHDIR=y
114 > CONFIG_GRKERNSEC_CHROOT_CHMOD=y
115 > CONFIG_GRKERNSEC_CHROOT_FCHDIR=y
116 > CONFIG_GRKERNSEC_CHROOT_MKNOD=y
117 > CONFIG_GRKERNSEC_CHROOT_SHMAT=y
118 > CONFIG_GRKERNSEC_CHROOT_UNIX=y
119 > CONFIG_GRKERNSEC_CHROOT_FINDTASK=y
120 > CONFIG_GRKERNSEC_CHROOT_NICE=y
121 > CONFIG_GRKERNSEC_CHROOT_SYSCTL=y
122 > CONFIG_GRKERNSEC_CHROOT_CAPS=y
123 > # CONFIG_GRKERNSEC_AUDIT_GROUP is not set
124 > # CONFIG_GRKERNSEC_EXECLOG is not set
125 > CONFIG_GRKERNSEC_RESLOG=y
126 > # CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set
127 > CONFIG_GRKERNSEC_AUDIT_PTRACE=y
128 > # CONFIG_GRKERNSEC_AUDIT_CHDIR is not set
129 > # CONFIG_GRKERNSEC_AUDIT_MOUNT is not set
130 > CONFIG_GRKERNSEC_SIGNAL=y
131 > CONFIG_GRKERNSEC_FORKFAIL=y
132 > # CONFIG_GRKERNSEC_TIME is not set
133 > CONFIG_GRKERNSEC_PROC_IPADDR=y
134 > CONFIG_GRKERNSEC_RWXMAP_LOG=y
135 > CONFIG_GRKERNSEC_DMESG=y
136 > CONFIG_GRKERNSEC_HARDEN_PTRACE=y
137 > CONFIG_GRKERNSEC_PTRACE_READEXEC=y
138 > CONFIG_GRKERNSEC_SETXID=y
139 > CONFIG_GRKERNSEC_HARDEN_IPC=y
140 > # CONFIG_GRKERNSEC_TPE is not set
141 > CONFIG_GRKERNSEC_RANDNET=y
142 > CONFIG_GRKERNSEC_BLACKHOLE=y
143 > CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y
144 > # CONFIG_GRKERNSEC_SOCKET is not set
145 > # CONFIG_GRKERNSEC_DENYUSB is not set
146 > CONFIG_GRKERNSEC_SYSCTL=y
147 > CONFIG_GRKERNSEC_SYSCTL_ON=y
148 > CONFIG_GRKERNSEC_FLOODTIME=10
149 > CONFIG_GRKERNSEC_FLOODBURST=4
150 >

Replies

Subject Author
Re: [gentoo-hardened] "grsec: denied RWX mprotect" doesn't kill app anymore Alexander Tsoy <alexander@××××.me>