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 |
> |