1 |
I encountered the same problem with qemu/kvm but can't even login, I |
2 |
get random segfaults and even failed malloc assertions |
3 |
in /sbin/init, /sbin/rc or /bin/login (never past this). |
4 |
|
5 |
But it works fine with CONFIG_PAX_MEMORY_UDEREF disabled. |
6 |
|
7 |
Config that reproduces the problem. |
8 |
|
9 |
$ grep -P "(GRK|PAX)" linux-3.15.8-hardened/.config |
10 |
CONFIG_PAX_KERNEXEC_PLUGIN=y |
11 |
CONFIG_PAX_PER_CPU_PGD=y |
12 |
CONFIG_PAX_USERCOPY_SLABS=y |
13 |
CONFIG_GRKERNSEC=y |
14 |
CONFIG_GRKERNSEC_CONFIG_AUTO=y |
15 |
# CONFIG_GRKERNSEC_CONFIG_CUSTOM is not set |
16 |
CONFIG_GRKERNSEC_CONFIG_SERVER=y |
17 |
# CONFIG_GRKERNSEC_CONFIG_DESKTOP is not set |
18 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_NONE is not set |
19 |
CONFIG_GRKERNSEC_CONFIG_VIRT_GUEST=y |
20 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_HOST is not set |
21 |
CONFIG_GRKERNSEC_CONFIG_VIRT_EPT=y |
22 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_SOFT is not set |
23 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_XEN is not set |
24 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_VMWARE is not set |
25 |
CONFIG_GRKERNSEC_CONFIG_VIRT_KVM=y |
26 |
# CONFIG_GRKERNSEC_CONFIG_VIRT_VIRTUALBOX is not set |
27 |
# CONFIG_GRKERNSEC_CONFIG_PRIORITY_PERF is not set |
28 |
CONFIG_GRKERNSEC_CONFIG_PRIORITY_SECURITY=y |
29 |
CONFIG_GRKERNSEC_PROC_GID=10 |
30 |
CONFIG_GRKERNSEC_TPE_UNTRUSTED_GID=100 |
31 |
CONFIG_GRKERNSEC_SYMLINKOWN_GID=100 |
32 |
CONFIG_PAX=y |
33 |
# CONFIG_PAX_SOFTMODE is not set |
34 |
CONFIG_PAX_PT_PAX_FLAGS=y |
35 |
CONFIG_PAX_XATTR_PAX_FLAGS=y |
36 |
# CONFIG_PAX_NO_ACL_FLAGS is not set |
37 |
CONFIG_PAX_HAVE_ACL_FLAGS=y |
38 |
# CONFIG_PAX_HOOK_ACL_FLAGS is not set |
39 |
CONFIG_PAX_NOEXEC=y |
40 |
CONFIG_PAX_PAGEEXEC=y |
41 |
CONFIG_PAX_EMUTRAMP=y |
42 |
CONFIG_PAX_MPROTECT=y |
43 |
# CONFIG_PAX_MPROTECT_COMPAT is not set |
44 |
# CONFIG_PAX_ELFRELOCS is not set |
45 |
CONFIG_PAX_KERNEXEC=y |
46 |
CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS=y |
47 |
CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="bts" |
48 |
CONFIG_PAX_ASLR=y |
49 |
# CONFIG_PAX_RANDKSTACK is not set |
50 |
CONFIG_PAX_RANDUSTACK=y |
51 |
CONFIG_PAX_RANDMMAP=y |
52 |
CONFIG_PAX_MEMORY_SANITIZE=y |
53 |
CONFIG_PAX_MEMORY_STACKLEAK=y |
54 |
CONFIG_PAX_MEMORY_STRUCTLEAK=y |
55 |
CONFIG_PAX_MEMORY_UDEREF=y |
56 |
CONFIG_PAX_REFCOUNT=y |
57 |
CONFIG_PAX_CONSTIFY_PLUGIN=y |
58 |
CONFIG_PAX_USERCOPY=y |
59 |
# CONFIG_PAX_USERCOPY_DEBUG is not set |
60 |
CONFIG_PAX_SIZE_OVERFLOW=y |
61 |
CONFIG_PAX_LATENT_ENTROPY=y |
62 |
CONFIG_GRKERNSEC_KMEM=y |
63 |
CONFIG_GRKERNSEC_IO=y |
64 |
CONFIG_GRKERNSEC_PERF_HARDEN=y |
65 |
CONFIG_GRKERNSEC_RAND_THREADSTACK=y |
66 |
CONFIG_GRKERNSEC_PROC_MEMMAP=y |
67 |
CONFIG_GRKERNSEC_KSTACKOVERFLOW=y |
68 |
CONFIG_GRKERNSEC_BRUTE=y |
69 |
CONFIG_GRKERNSEC_HIDESYM=y |
70 |
CONFIG_GRKERNSEC_RANDSTRUCT=y |
71 |
# CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE is not set |
72 |
# CONFIG_GRKERNSEC_KERN_LOCKOUT is not set |
73 |
CONFIG_GRKERNSEC_NO_RBAC=y |
74 |
CONFIG_GRKERNSEC_ACL_HIDEKERN=y |
75 |
CONFIG_GRKERNSEC_ACL_MAXTRIES=3 |
76 |
CONFIG_GRKERNSEC_ACL_TIMEOUT=30 |
77 |
CONFIG_GRKERNSEC_PROC=y |
78 |
# CONFIG_GRKERNSEC_PROC_USER is not set |
79 |
CONFIG_GRKERNSEC_PROC_USERGROUP=y |
80 |
CONFIG_GRKERNSEC_PROC_ADD=y |
81 |
CONFIG_GRKERNSEC_LINK=y |
82 |
CONFIG_GRKERNSEC_SYMLINKOWN=y |
83 |
CONFIG_GRKERNSEC_FIFO=y |
84 |
CONFIG_GRKERNSEC_SYSFS_RESTRICT=y |
85 |
# CONFIG_GRKERNSEC_ROFS is not set |
86 |
CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y |
87 |
CONFIG_GRKERNSEC_CHROOT=y |
88 |
CONFIG_GRKERNSEC_CHROOT_MOUNT=y |
89 |
CONFIG_GRKERNSEC_CHROOT_DOUBLE=y |
90 |
CONFIG_GRKERNSEC_CHROOT_PIVOT=y |
91 |
CONFIG_GRKERNSEC_CHROOT_CHDIR=y |
92 |
CONFIG_GRKERNSEC_CHROOT_CHMOD=y |
93 |
CONFIG_GRKERNSEC_CHROOT_FCHDIR=y |
94 |
CONFIG_GRKERNSEC_CHROOT_MKNOD=y |
95 |
CONFIG_GRKERNSEC_CHROOT_SHMAT=y |
96 |
CONFIG_GRKERNSEC_CHROOT_UNIX=y |
97 |
CONFIG_GRKERNSEC_CHROOT_FINDTASK=y |
98 |
CONFIG_GRKERNSEC_CHROOT_NICE=y |
99 |
CONFIG_GRKERNSEC_CHROOT_SYSCTL=y |
100 |
CONFIG_GRKERNSEC_CHROOT_CAPS=y |
101 |
# CONFIG_GRKERNSEC_AUDIT_GROUP is not set |
102 |
CONFIG_GRKERNSEC_EXECLOG=y |
103 |
CONFIG_GRKERNSEC_RESLOG=y |
104 |
CONFIG_GRKERNSEC_CHROOT_EXECLOG=y |
105 |
# CONFIG_GRKERNSEC_AUDIT_PTRACE is not set |
106 |
# CONFIG_GRKERNSEC_AUDIT_CHDIR is not set |
107 |
# CONFIG_GRKERNSEC_AUDIT_MOUNT is not set |
108 |
CONFIG_GRKERNSEC_SIGNAL=y |
109 |
# CONFIG_GRKERNSEC_FORKFAIL is not set |
110 |
CONFIG_GRKERNSEC_TIME=y |
111 |
CONFIG_GRKERNSEC_PROC_IPADDR=y |
112 |
CONFIG_GRKERNSEC_RWXMAP_LOG=y |
113 |
CONFIG_GRKERNSEC_DMESG=y |
114 |
CONFIG_GRKERNSEC_HARDEN_PTRACE=y |
115 |
CONFIG_GRKERNSEC_PTRACE_READEXEC=y |
116 |
CONFIG_GRKERNSEC_SETXID=y |
117 |
CONFIG_GRKERNSEC_HARDEN_IPC=y |
118 |
CONFIG_GRKERNSEC_TPE=y |
119 |
# CONFIG_GRKERNSEC_TPE_ALL is not set |
120 |
# CONFIG_GRKERNSEC_TPE_INVERT is not set |
121 |
CONFIG_GRKERNSEC_TPE_GID=100 |
122 |
CONFIG_GRKERNSEC_RANDNET=y |
123 |
CONFIG_GRKERNSEC_BLACKHOLE=y |
124 |
CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y |
125 |
# CONFIG_GRKERNSEC_SOCKET is not set |
126 |
# CONFIG_GRKERNSEC_SYSCTL is not set |
127 |
CONFIG_GRKERNSEC_FLOODTIME=10 |
128 |
CONFIG_GRKERNSEC_FLOODBURST=6 |
129 |
|
130 |
On Tue, 26 Aug 2014 11:24:26 +0100 |
131 |
Marcin Mirosław <marcin@×××××.pl> wrote: |
132 |
|
133 |
> Hello! |
134 |
> I suspect that I've got problem with hardened-sources in KVM VM. I'm |
135 |
> not sure if I should fill a bug for this. I'd like to post it here |
136 |
> before using b.g.o. |
137 |
> I've got VM (it's KVM with qemu-2.0.0-r1), with |
138 |
> hardened-sources-3.15.{5-r2,8}. I'm observing a kind of memory |
139 |
> corruption. After a couple of hours of uptime I'm starting seeing |
140 |
> random segfaults, general protection traps especially when process |
141 |
> uses a lot of CPU and do many I/O operations (masscheck scripts |
142 |
> written in perl for spamassasin rules). |
143 |
> In log I've got e.g.: |
144 |
> |
145 |
> 2014-08-25T13:05:23.243062+02:00 mohikanin kernel: [45571.239703] PAX: |
146 |
> >From 88.198.102.195: execution attempt in: (null), 00000000-00000000 |
147 |
> 00000000 |
148 |
> 2014-08-25T13:05:23.243088+02:00 mohikanin kernel: [45571.239707] PAX: |
149 |
> terminating task: /usr/libexec/dovecot/pop3-login(pop3-login):2507, |
150 |
> uid/euid: 105/105, PC: (nil), SP: 000003a8574e4c00 |
151 |
> 2014-08-25T13:05:23.243093+02:00 mohikanin kernel: [45571.239709] PAX: |
152 |
> bytes at |
153 |
> PC: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? |
154 |
> 2014-08-25T13:05:23.243095+02:00 mohikanin kernel: [45571.239735] |
155 |
> PAX: bytes at SP-8: 0000000000000000 0000000000000000 |
156 |
> 00000059c6deceb0 0000000000000000 00000316027bc540 0000000000000001 |
157 |
> 000003160271dbb5 0000000000000000 0000000000000000 0000000000000000 |
158 |
> 0000000000000000 2014-08-25T13:24:42.943001+02:00 mohikanin kernel: |
159 |
> [46730.931353] traps: spamd child[19681] general protection |
160 |
> ip:2c572b6e163 sp:3ca7d000be0 error:0 in |
161 |
> libc-2.19.so[2c572aee000+19e000] 2014-08-25T13:24:42.943007+02:00 |
162 |
> mohikanin kernel: [46730.931371] grsec: Segmentation fault occurred |
163 |
> at (nil) in /usr/sbin/spamd[spamd child:19681] |
164 |
> uid/euid:999/999 gid/egid:100/100, |
165 |
> parent /usr/sbin/spamd[/usr/sbin/spamd:1255] uid/euid:0/0 |
166 |
> gid/egid:0/0 2014-08-25T13:55:22.383032+02:00 mohikanin kernel: |
167 |
> [48570.375917] traps: freshclam[6594] general protection |
168 |
> ip:344cceb368d sp:3d5f5ced520 error:0 in |
169 |
> libclamav.so.6.1.23[344ccdf1000+9d1000] |
170 |
> 2014-08-25T13:55:22.383050+02:00 mohikanin kernel: [48570.375968] |
171 |
> grsec: Segmentation fault occurred at (nil) |
172 |
> in /usr/bin/freshclam[freshclam:6594] uid/euid:104/104 |
173 |
> gid/egid:115/115, parent /usr/bin/freshclam[freshclam:1159] |
174 |
> uid/euid:104/104 gid/egid:115/115 |
175 |
> |
176 |
> Yesterday I switched kernel to gentoo-sources-3.14.14 and I don't see |
177 |
> any unwanted behavior. This is why I suspect hardened-sources. Should |
178 |
> I fill a bug? What should I do help find out the root of problem? |
179 |
> (gcc is: gcc version 4.7.3 (Gentoo Hardened 4.7.3-r1 p1.4, |
180 |
> pie-0.5.5) , with ld.gold) |
181 |
> |
182 |
> Marcin |
183 |
> |
184 |
> # grep -P "(GRK|PAX)" /boot/config-3.15.8-hardened |
185 |
> CONFIG_PAX_KERNEXEC_PLUGIN=y |
186 |
> CONFIG_PAX_PER_CPU_PGD=y |
187 |
> CONFIG_PAX_USERCOPY_SLABS=y |
188 |
> CONFIG_GRKERNSEC=y |
189 |
> CONFIG_GRKERNSEC_CONFIG_AUTO=y |
190 |
> # CONFIG_GRKERNSEC_CONFIG_CUSTOM is not set |
191 |
> CONFIG_GRKERNSEC_CONFIG_SERVER=y |
192 |
> # CONFIG_GRKERNSEC_CONFIG_DESKTOP is not set |
193 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_NONE is not set |
194 |
> CONFIG_GRKERNSEC_CONFIG_VIRT_GUEST=y |
195 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_HOST is not set |
196 |
> CONFIG_GRKERNSEC_CONFIG_VIRT_EPT=y |
197 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_SOFT is not set |
198 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_XEN is not set |
199 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_VMWARE is not set |
200 |
> CONFIG_GRKERNSEC_CONFIG_VIRT_KVM=y |
201 |
> # CONFIG_GRKERNSEC_CONFIG_VIRT_VIRTUALBOX is not set |
202 |
> CONFIG_GRKERNSEC_CONFIG_PRIORITY_PERF=y |
203 |
> # CONFIG_GRKERNSEC_CONFIG_PRIORITY_SECURITY is not set |
204 |
> CONFIG_GRKERNSEC_PROC_GID=55555 |
205 |
> CONFIG_GRKERNSEC_TPE_TRUSTED_GID=55555 |
206 |
> CONFIG_GRKERNSEC_SYMLINKOWN_GID=100 |
207 |
> CONFIG_PAX=y |
208 |
> # CONFIG_PAX_SOFTMODE is not set |
209 |
> # CONFIG_PAX_PT_PAX_FLAGS is not set |
210 |
> CONFIG_PAX_XATTR_PAX_FLAGS=y |
211 |
> # CONFIG_PAX_NO_ACL_FLAGS is not set |
212 |
> CONFIG_PAX_HAVE_ACL_FLAGS=y |
213 |
> # CONFIG_PAX_HOOK_ACL_FLAGS is not set |
214 |
> CONFIG_PAX_NOEXEC=y |
215 |
> CONFIG_PAX_PAGEEXEC=y |
216 |
> CONFIG_PAX_EMUTRAMP=y |
217 |
> CONFIG_PAX_MPROTECT=y |
218 |
> # CONFIG_PAX_MPROTECT_COMPAT is not set |
219 |
> # CONFIG_PAX_ELFRELOCS is not set |
220 |
> CONFIG_PAX_KERNEXEC=y |
221 |
> CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS=y |
222 |
> CONFIG_PAX_KERNEXEC_PLUGIN_METHOD="bts" |
223 |
> CONFIG_PAX_ASLR=y |
224 |
> CONFIG_PAX_RANDKSTACK=y |
225 |
> CONFIG_PAX_RANDUSTACK=y |
226 |
> CONFIG_PAX_RANDMMAP=y |
227 |
> # CONFIG_PAX_MEMORY_SANITIZE is not set |
228 |
> CONFIG_PAX_MEMORY_STACKLEAK=y |
229 |
> CONFIG_PAX_MEMORY_STRUCTLEAK=y |
230 |
> CONFIG_PAX_MEMORY_UDEREF=y |
231 |
> CONFIG_PAX_REFCOUNT=y |
232 |
> CONFIG_PAX_CONSTIFY_PLUGIN=y |
233 |
> CONFIG_PAX_USERCOPY=y |
234 |
> # CONFIG_PAX_USERCOPY_DEBUG is not set |
235 |
> CONFIG_PAX_SIZE_OVERFLOW=y |
236 |
> CONFIG_PAX_LATENT_ENTROPY=y |
237 |
> CONFIG_GRKERNSEC_KMEM=y |
238 |
> CONFIG_GRKERNSEC_IO=y |
239 |
> CONFIG_GRKERNSEC_JIT_HARDEN=y |
240 |
> CONFIG_GRKERNSEC_PERF_HARDEN=y |
241 |
> CONFIG_GRKERNSEC_RAND_THREADSTACK=y |
242 |
> CONFIG_GRKERNSEC_PROC_MEMMAP=y |
243 |
> CONFIG_GRKERNSEC_KSTACKOVERFLOW=y |
244 |
> # CONFIG_GRKERNSEC_BRUTE is not set |
245 |
> CONFIG_GRKERNSEC_MODHARDEN=y |
246 |
> CONFIG_GRKERNSEC_HIDESYM=y |
247 |
> CONFIG_GRKERNSEC_RANDSTRUCT=y |
248 |
> CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE=y |
249 |
> # CONFIG_GRKERNSEC_KERN_LOCKOUT is not set |
250 |
> CONFIG_GRKERNSEC_NO_RBAC=y |
251 |
> # CONFIG_GRKERNSEC_ACL_HIDEKERN is not set |
252 |
> CONFIG_GRKERNSEC_ACL_MAXTRIES=3 |
253 |
> CONFIG_GRKERNSEC_ACL_TIMEOUT=30 |
254 |
> CONFIG_GRKERNSEC_PROC=y |
255 |
> CONFIG_GRKERNSEC_PROC_USER=y |
256 |
> CONFIG_GRKERNSEC_PROC_ADD=y |
257 |
> CONFIG_GRKERNSEC_LINK=y |
258 |
> CONFIG_GRKERNSEC_SYMLINKOWN=y |
259 |
> CONFIG_GRKERNSEC_FIFO=y |
260 |
> CONFIG_GRKERNSEC_SYSFS_RESTRICT=y |
261 |
> # CONFIG_GRKERNSEC_ROFS is not set |
262 |
> CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL=y |
263 |
> CONFIG_GRKERNSEC_CHROOT=y |
264 |
> CONFIG_GRKERNSEC_CHROOT_MOUNT=y |
265 |
> CONFIG_GRKERNSEC_CHROOT_DOUBLE=y |
266 |
> CONFIG_GRKERNSEC_CHROOT_PIVOT=y |
267 |
> CONFIG_GRKERNSEC_CHROOT_CHDIR=y |
268 |
> CONFIG_GRKERNSEC_CHROOT_CHMOD=y |
269 |
> CONFIG_GRKERNSEC_CHROOT_FCHDIR=y |
270 |
> CONFIG_GRKERNSEC_CHROOT_MKNOD=y |
271 |
> CONFIG_GRKERNSEC_CHROOT_SHMAT=y |
272 |
> CONFIG_GRKERNSEC_CHROOT_UNIX=y |
273 |
> CONFIG_GRKERNSEC_CHROOT_FINDTASK=y |
274 |
> CONFIG_GRKERNSEC_CHROOT_NICE=y |
275 |
> CONFIG_GRKERNSEC_CHROOT_SYSCTL=y |
276 |
> CONFIG_GRKERNSEC_CHROOT_CAPS=y |
277 |
> CONFIG_GRKERNSEC_CHROOT_INITRD=y |
278 |
> # CONFIG_GRKERNSEC_AUDIT_GROUP is not set |
279 |
> # CONFIG_GRKERNSEC_EXECLOG is not set |
280 |
> CONFIG_GRKERNSEC_RESLOG=y |
281 |
> # CONFIG_GRKERNSEC_CHROOT_EXECLOG is not set |
282 |
> # CONFIG_GRKERNSEC_AUDIT_PTRACE is not set |
283 |
> # CONFIG_GRKERNSEC_AUDIT_CHDIR is not set |
284 |
> CONFIG_GRKERNSEC_AUDIT_MOUNT=y |
285 |
> CONFIG_GRKERNSEC_SIGNAL=y |
286 |
> CONFIG_GRKERNSEC_FORKFAIL=y |
287 |
> CONFIG_GRKERNSEC_TIME=y |
288 |
> CONFIG_GRKERNSEC_PROC_IPADDR=y |
289 |
> CONFIG_GRKERNSEC_RWXMAP_LOG=y |
290 |
> CONFIG_GRKERNSEC_DMESG=y |
291 |
> CONFIG_GRKERNSEC_HARDEN_PTRACE=y |
292 |
> CONFIG_GRKERNSEC_PTRACE_READEXEC=y |
293 |
> CONFIG_GRKERNSEC_SETXID=y |
294 |
> CONFIG_GRKERNSEC_HARDEN_IPC=y |
295 |
> CONFIG_GRKERNSEC_TPE=y |
296 |
> CONFIG_GRKERNSEC_TPE_ALL=y |
297 |
> CONFIG_GRKERNSEC_TPE_INVERT=y |
298 |
> CONFIG_GRKERNSEC_TPE_GID=55555 |
299 |
> CONFIG_GRKERNSEC_RANDNET=y |
300 |
> CONFIG_GRKERNSEC_BLACKHOLE=y |
301 |
> CONFIG_GRKERNSEC_NO_SIMULT_CONNECT=y |
302 |
> # CONFIG_GRKERNSEC_SOCKET is not set |
303 |
> CONFIG_GRKERNSEC_SYSCTL=y |
304 |
> # CONFIG_GRKERNSEC_SYSCTL_DISTRO is not set |
305 |
> CONFIG_GRKERNSEC_SYSCTL_ON=y |
306 |
> CONFIG_GRKERNSEC_FLOODTIME=10 |
307 |
> CONFIG_GRKERNSEC_FLOODBURST=6 |
308 |
> |
309 |
|
310 |
|
311 |
|
312 |
-- |
313 |
André Aparício |
314 |
andre.aparicio@×××××××××××××××××××.pt |
315 |
|
316 |
Administração de Sistemas da Rede das Novas Licenciaturas |
317 |
Técnico Lisboa |
318 |
|
319 |
web: http://www.rnl.tecnico.ulisboa.pt |
320 |
email: rnl@×××××××××××××××××××.pt |
321 |
telefone: +351 218 41 77 71 |