Hallo,
mit der smbmount-alternative sharity-light-1.3p0.tgz kann man unter einer beliebigen userkennung OpenBSD 5.0 zum Absturz bringen.
Ich konnte diese Problem mit 3 unterschiedlichen Rechnern nachvollziehen.
Benötigt werden:
- OpenBSD5.0 und das Paket sharity-light-1.3p0.tgz
- eine Samba-Freigabe (sicherlich geht auch ein Windows-PC)
Dann die Freigabe unter OpenBSD mounten (als root)
nun kann man unter beliebiger userkennung folgendes ausführen (hier z.B. als nobody):
=> uvm_fault
Ich vermute mal, es ist ein Bug im NFS-Code des Kernels.
Ich habe das Problem zwar per bugreport an OpenBSD weitergegeben, habe bisher aber noch keine Rückmeldung und das "Bug Tracking system" auf http://www.openbsd.org/query-pr.html funktioniert auch nicht (klick auf "Query" => The requested URL /cgi-bin/query-pr-wrapper was not found on this server
Hier einige weitere Infos:
Kann irgendjemand das Problem bestätigen ?
mit der smbmount-alternative sharity-light-1.3p0.tgz kann man unter einer beliebigen userkennung OpenBSD 5.0 zum Absturz bringen.
Ich konnte diese Problem mit 3 unterschiedlichen Rechnern nachvollziehen.
Benötigt werden:
- OpenBSD5.0 und das Paket sharity-light-1.3p0.tgz
- eine Samba-Freigabe (sicherlich geht auch ein Windows-PC)
Dann die Freigabe unter OpenBSD mounten (als root)
Code:
mkdir /tmp/server
shlight //1.2.3.4/test /tmp/server -n
nun kann man unter beliebiger userkennung folgendes ausführen (hier z.B. als nobody):
Code:
cd /tmp
su -s /bin/sh nobody
mkdir /tmp/server/folder
chown nobody /tmp/server/folder
ls /tmp/server/folder
=> uvm_fault
Ich vermute mal, es ist ein Bug im NFS-Code des Kernels.
Ich habe das Problem zwar per bugreport an OpenBSD weitergegeben, habe bisher aber noch keine Rückmeldung und das "Bug Tracking system" auf http://www.openbsd.org/query-pr.html funktioniert auch nicht (klick auf "Query" => The requested URL /cgi-bin/query-pr-wrapper was not found on this server
Hier einige weitere Infos:
Code:
uvm_fault(0xd09fa3c0, 0xefffa000, 0, 3) -> d
kernel: page fault trap, code=0
Stopped at cache_zap+0x23: movl %eax,0x4(%edx)
ddb> trace
cache_zap(d50c3a04,d10a8200,d50bed4c,d04c0911,d50c49c4) at cache_zap+0x23
cache_purge(d50c49c4,d50634e0,d50bed6c,d50c49c4,d2fec2b0) at cache_purge+0x1c
nfs_reclaim(d50bed64,1006000,0,d50c49c4,d50c49c4) at nfs_reclaim+0xa1
VOP_RECLAIM(d50c49c4,d2fec2b0,d2fec2b0,d2fec2b0,0) at VOP_RECLAIM+0x29
vclean(d50c49c4,8,d2fec2b0,d0412fae,0) at vclean+0x8a
vgonel(d50c49c4,d2fec2b0,d50bee2c,d0413fdb,d50c426c) at vgonel+0x64
vflush_vnode(d50c49c4,d50bee40,d50bee18,d10a8200,d10d0800) at vflush_vnode+0x62
vfs_mount_foreach_vnode(d10d0800,d04143c0,d50bee40,d041417a,50) at vfs_mount_fo
reach_vnode+0x2a
vflush(d10d0800,0,0,10,0) at vflush+0x33
nfs_unmount(d10d0800,0,d2fec2b0,d2fec2b0,d10d081c) at nfs_unmount+0x37
dounmount(d10d0800,0,d2fec2b0,d50c4274,7d6cbbc0) at dounmount+0x84
sys_unmount(d2fec2b0,d50bef64,d50bef84,d50befa8,d2fec2b0) at sys_unmount+0xf0
syscall() at syscall+0x2d8
--- syscall (number 0) ---
0x2:
ddb> ps
PID PPID PGRP UID S FLAGS WAIT COMMAND
* 4897 9519 4897 0 7 0 unshlight
17780 1 32705 0 3 0x80 select shlight
9223 13325 9223 0 3 0x80 ttyin bash
13325 17099 13325 0 3 0x80 select sshd
9519 28720 9519 0 3 0x80 wait bash
28720 17099 28720 0 3 0x80 select sshd
7778 1 7778 0 3 0x80 ttyin getty
23207 1 23207 0 3 0x80 select cron
7042 1 7042 0 3 0x80 htplev hotplugd
10686 0 0 0 3 0x100280 nfsidl nfsio
21872 0 0 0 3 0x100280 nfsidl nfsio
7643 0 0 0 3 0x100280 nfsidl nfsio
16710 0 0 0 3 0x100280 nfsidl nfsio
3978 11206 11206 70 3 0x80 select named
11206 1 11206 0 3 0x80 netio named
769 1 769 0 3 0x80 select nmbd
23876 30194 30194 0 3 0x80 select smbd
30194 1 30194 0 3 0x80 select smbd
10218 1 22734 585 3 0x80 kqread lighttpd
533 1 533 0 3 0x80 select inetd
29 1 29 77 3 0x80 poll dhcpd
17099 1 17099 0 3 0x80 select sshd
2581 7244 2258 83 3 0x80 poll ntpd
7244 2258 2258 83 3 0x80 poll ntpd
2258 1 2258 0 3 0x80 poll ntpd
27217 16445 16445 70 3 0x80 select named
16445 1 16445 0 3 0x80 netio named
22963 16673 16673 74 3 0x80 bpf pflogd
16673 1 16673 0 3 0x80 netio pflogd
444 12625 12625 73 2 0x80 syslogd
12625 1 12625 0 3 0x80 netio syslogd
29140 1 29140 77 3 0x80 poll dhclient
6742 1 15626 0 3 0x80 poll dhclient
13 0 0 0 3 0x100200 aiodoned aiodoned
12 0 0 0 3 0x100200 syncer update
11 0 0 0 3 0x100200 cleaner cleaner
10 0 0 0 3 0x100200 reaper reaper
9 0 0 0 3 0x100200 pgdaemon pagedaemon
8 0 0 0 3 0x100200 bored crypto
7 0 0 0 3 0x100200 pftm pfpurge
6 0 0 0 3 0x100200 usbtsk usbtask
5 0 0 0 3 0x100200 usbatsk usbatsk
4 0 0 0 3 0x100200 bored syswq
3 0 0 0 3 0x40100200 idle0
2 0 0 0 3 0x100200 kmalloc kmthread
1 0 1 0 3 0x80 wait init
0 -1 0 0 3 0x200 scheduler swapper
ddb> show registers
ds 0x10
es 0x10
fs 0x20
gs 0
edi 0xd50634e0 end+0x458933c
esi 0xd50c49c4 end+0x45ea820
ebp 0xd50bed1c end+0x45e4b78
ebx 0xd50c3a04 end+0x45e9860
edx 0xefffaabb
ecx 0xd09b61b8 nfs_hashlock
eax 0xd50c3bbc end+0x45e9a18
eip 0xd040e903 cache_zap+0x23
cs 0x8
eflags 0x10286
esp 0xd50bed04 end+0x45e4b60
ss 0x10
cache_zap+0x23: movl %eax,0x4(%edx)
ddb>
Kann irgendjemand das Problem bestätigen ?