shlight bringt OpenBSD 5.0 zum Absturz

hallole

Active Member
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)

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 ?
 
Wäre es nicht besser gewesen sich erst einmal privat an die Entwickler zu wenden, bevor man ein potentielles, lokales Angriffsszenario öffentlich macht? :)
 
Ich habe es zwar gemeldet, die Antwort die ich erhielt, hat mich dann aber doch etwas verunsichert:

i'm barely pointing out that your report is incomplete/incorrect, not trying to fix the bug (sorry, absolutely not my bailiwick) :(

Ich habe dann zwar noch einiges an weiteren Infos nachgeschoben, aber seitdem nie mehr was gehört. Haben die Jungs keine Zeit oder keine Lust ?:confused:
 
Da muss man ja root ahben um das Paket zu installieren, ist also garkeine Sicherheitslücke!

oder so...
 
Man muss auch root sein, um mit shlight was zu mounten (vermute ich mal).
Es wird aber sicherlich sehr viele Server geben, bei denen beim booten eine Windows-Freigabe automatisch gemountet wird (mach ja auch in vielen Situationen Sinn). Solch ein Rechner kann dann von jedem user gecrasht werden.

Mit shlight benötigt man (vermutlich) root-rechte. Es kann aber gut sein, dass der eigentlich Kernel-Bug (ich behaupte jetzt einfach mal, dass es einer ist) auch von einem normalen user ausgenutzt werden kann. Und da ich absolut nicht weiß, was genau hier der Fehler ist, kann es auch durchaus sein, dass der bug noch wesentlich gefährlicher ist und u.U. auch ein remote-Problem darstellen könnte. Ich habe hier ja nur eine Möglichkeit beschrieben, wie es zum Crash kommt.

Nur schade, dass es bisher - so mein Eindruck - niemanden bei OpenBSD interessiert. ;'(

Kann eigentlich bisher irgendjemand den Bug nachvollziehen ?
 
Also ich hab zwar gerade kein Openbsd hier und kann leider nicht testen, aber hast du den Bug mal auf der misc-Mailinglist gepostet? Vielleicht bekommst du da mehr und/oder positivere Antworten.

Edit: Meines Wissens nach ist der Bugtracker offline, weil er "zu schlecht" war. Da aber auch alle anderen Lösungen die Anforderungen nicht erfüllen, gibts im Moment einfach keinen. Irgendwie eine komische Einstellung :/
 
Also ich hab zwar gerade kein Openbsd hier und kann leider nicht testen...

Ich konnte den Bug auch mit MarBSD http://openbsd.maroufi.net/download.shtml nachvollziehen. Bin mir nur nicht ganz sicher, ob es mit jedem Samba / jeder Windowsfreigabe geht, oder nur bei mir.

... hast du den Bug mal auf der misc-Mailinglist gepostet? Vielleicht bekommst du da mehr und/oder positivere Antworten.
Bisher noch nicht. Ich war eigentlich bisher immer der Meinung, dass es reichen sollte, jemanden auf einen Bug hinzuweisen. Ich verstehe ja, dass man auf Mails wie "Es geht nicht" keinen besonderen Wert legt. Ich habe aber eine recht ausführliche Beschreibung mitgeliefert und viele Stunden damit verbracht, das Problem einzugrenzen. Ich kann doch erwarten, dass man irgendwie reagiert - zumal sich OpenBSD auf die Fahne geschrieben hat, ein besonders sicheres Betriebssystem zu sein.

Viren-Programmierer würden mir vielleicht soger noch Geld für den Bug zahlen :mad:
 
hi

shlight ist eine implementierung die schon recht alt ist und ursprunglich fuer freebsd
gemacht wurde.


da haben die programmierer von openbsd nix mit zu tun ausser das sie den kernel
fixen werden .

damit ist der bug von shlight nicht beseitigt nur er crash dann nicht mehr den kernel.

holger
 
@Kamikaze
Hier der "PR" an bugs@openbsd.org
Code:
To: bugs@openbsd.org
Subject: sharity-light => uvm_fault

Hi,

I have used sendbug to send this bugreport, but I don't got any message from You.
And the Bug Tracking system on http://www.openbsd.org/query-pr.html don't work
(klick on "Query" => The requested URL /cgi-bin/query-pr-wrapper was not found on this server

So I send this report as email (again ?):

hope this is ok.

==================================================================================
>Synopsis:      sharity-light => uvm_fault
>Category:      kernel
>Environment:
        System      : OpenBSD 5.0
        Details     : OpenBSD 5.0 (GENERIC) #43: Wed Aug 17 10:10:52 MDT 2011
                         deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC

        Architecture: OpenBSD.i386
        Machine     : i386
>Description:

I have tested this issue with 3 different computers with OpenBSD 5.0.
I keep getting the same crash.
I have tested the bsd Kernel from 5.0 and this one: http://openbsd.cs.fau.de/pub/OpenBSD/snapshots/i386/bsd
Always the same result.

I want to synchronize a samba share (mounted with shlight) with rsync.
But it crashes again and again. So I have reduced the issu to this simple steps:
- mount a share with shlight
- chown a folder of the share
- ls the folder


>How-To-Repeat:
You need:
- OpenBSD 5.0
- the package "sharity-light-1.3p0.tgz"
- a linux server with samba (I think an ObenBSD or Windows server is also OK)

Then mount the samba-share

mkdir /tmp/server
shlight //<server-ip>/<name of the share> /tmp/server -n
mkdir /tmp/server/new-folder
chown nobody /tmp/server/new-folder
ls /tmp/server/new-folder

then You see :
___________________________________________________________________________
uvm_fault(0xd09fa3c0, 0xefffa000, 0, 3) -> d
kernel: page fault trap, code=0
Stopped at      cache_zap+0x23: movl    %eax,0x4(%edx)
ddb>
___________________________________________________________________________

Instead of "ls /tmp/server/new-folder" you can also take "unshlight -a" to get this uvm_fault.

Once I received this error (after "boot sync") :
___________________________________________________________________________
uvm_fault(0xd09fa3c0, 0xefffa000, 0, 3) -> d
kernel: page fault trap, code=0
Stopped at      cache_zap+0x23: movl    %eax,0x4(%edx)
ddb> boor sync
No such command
ddb> boot sync
syncing disks... panic: rw_enter: vfslock locking against myself
Stopped at      Debugger+0x4:   popl    %ebp
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!
ddb> trace
Debugger(d08cee78,d506ca24,d08ac338,d506ca24,d09b3a3c) at Debugger+0x4
panic(d08ac338,d08b0da7,d506ca2c,d0202146,d0a4852c) at panic+0x5d
rw_enter(d109801c,41,d506cb3c,11,d1098000) at rw_enter+0x211
vfs_busy(d1098000,5,0,0,d506cac4) at vfs_busy+0x35
sys_sync(d0a1bf40,0,0,0,0) at sys_sync+0x3d
vfs_shutdown(d506cafc,14,d506cb08,d03a8f95,d) at vfs_shutdown+0x7a
boot(4800,d506cb3c,d506cbc8,d03a6e64,d040e903) at boot+0x18a
db_boot_sync_cmd(d040e903,0,ffffffff,d506cb40,0) at db_boot_sync_cmd+0x12
db_command(d09b1780,d09b15a0,0,d040e903,d506ccc4) at db_command+0x124
db_command_loop(d040e903,d506cc30,d506cc38,d03b300d,800) at db_command_loop+0x7
1
db_trap(6,0,58,d506ccc4,efffa000) at db_trap+0xc0
kdb_trap(6,0,d506ccc4,3,d) at kdb_trap+0xc7
trap() at trap+0x27a
--- trap (number -721114120) ---
Bad frame pointer: 0xd5032254
0xd5060002:
ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
* 8256  25408   8256      0  7           0                unshlight
 13421      1  29620      0  3        0x80  select        shlight
 25408  20232  25408      0  3        0x80  wait          bash
 20232   5071  20232      0  3        0x80  select        sshd
 32573      1  32573      0  3        0x80  ttyin         getty
 14066      1  14066      0  3        0x80  select        cron
 27934      1  27934      0  3        0x80  htplev        hotplugd
 24527      0      0      0  3    0x100280  nfsidl        nfsio
 21322      0      0      0  3    0x100280  nfsidl        nfsio
 18191      0      0      0  3    0x100280  nfsidl        nfsio
 16231      0      0      0  3    0x100280  nfsidl        nfsio
 26925   4691   4691     70  3        0x80  select        named
  4691      1   4691      0  3        0x80  netio         named
 28854      1  28854      0  3        0x80  select        nmbd
 17452  19216  19216      0  3        0x80  select        smbd
 19216      1  19216      0  3        0x80  select        smbd
   561      1  22916    585  3        0x80  kqread        lighttpd
 32289      1  32289      0  3        0x80  select        inetd
 19298      1  19298     77  3        0x80  poll          dhcpd
  5071      1   5071      0  3        0x80  select        sshd
 18266  22418  22498     83  3        0x80  poll          ntpd
 22418  22498  22498     83  3        0x80  poll          ntpd
 22498      1  22498      0  3        0x80  poll          ntpd
 28023   8065   8065     70  2       0x480                named
  8065      1   8065      0  3        0x80  netio         named
  2506  19806  19806     74  3        0x80  bpf           pflogd
 19806      1  19806      0  3        0x80  netio         pflogd
  2985   8538   8538     73  2        0x80                syslogd
  8538      1   8538      0  3        0x80  netio         syslogd
 25769      1  25769     77  3        0x80  poll          dhclient
 26694      1  11114      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>
___________________________________________________________________________



Thank you!

>Fix:



dmesg:
OpenBSD 5.0 (GENERIC) #43: Wed Aug 17 10:10:52 MDT 2011
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Geode(TM) Integrated Processor by National Semi ("Geode by NSC" 586-class) 234 MHz
cpu0: FPU,TSC,MSR,CX8,CMOV,MMX
real mem  = 133754880 (127MB)
avail mem = 121581568 (115MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 20/80/03, BIOS32 rev. 0 @ 0xf7840
pcibios0 at bios0: rev 2.0 @ 0xf0000/0x10000
pcibios0: pcibios_get_intr_routing - function not supported
pcibios0: PCI IRQ Routing information unavailable.
pcibios0: PCI bus #0 is the last bus
bios0: ROM list: 0xc8000/0x9000
cpu0 at mainbus0: (uniprocessor)
cpu0: TSC disabled
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Cyrix GXm PCI" rev 0x00
sis0 at pci0 dev 6 function 0 "NS DP83815 10/100" rev 0x00, DP83816A: irq 10, address 00:00:24:cd:cc:4c
nsphyter0 at sis0 phy 0: DP83815 10/100 PHY, rev. 1
sis1 at pci0 dev 7 function 0 "NS DP83815 10/100" rev 0x00, DP83816A: irq 10, address 00:00:24:cd:cc:4d
nsphyter1 at sis1 phy 0: DP83815 10/100 PHY, rev. 1
sis2 at pci0 dev 8 function 0 "NS DP83815 10/100" rev 0x00, DP83816A: irq 10, address 00:00:24:cd:cc:4e
nsphyter2 at sis2 phy 0: DP83815 10/100 PHY, rev. 1
gscpcib0 at pci0 dev 18 function 0 "NS SC1100 ISA" rev 0x00
gpio0 at gscpcib0: 64 pins
"NS SC1100 SMI" rev 0x00 at pci0 dev 18 function 1 not configured
pciide0 at pci0 dev 18 function 2 "NS SCx200 IDE" rev 0x01: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 1: <TS4GCF133>
wd0: 1-sector PIO, LBA, 3823MB, 7831152 sectors
wd0(pciide0:0:1): using PIO mode 4, Ultra-DMA mode 2
geodesc0 at pci0 dev 18 function 5 "NS SC1100 X-Bus" rev 0x00: iid 6 revision 3 wdstatus 0
ohci0 at pci0 dev 19 function 0 "Compaq USB OpenHost" rev 0x08: irq 11, version 1.0, legacy support
isa0 at gscpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
nsclpcsio0 at isa0 port 0x2e/2: NSC PC87366 rev 9: GPIO VLM TMS
gpio1 at nsclpcsio0: 29 pins
gscsio0 at isa0 port 0x15c/2: SC1100 SIO rev 1:
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
usb0 at ohci0: USB revision 1.0
uhub0 at usb0 "Compaq OHCI root hub" rev 1.00/1.00 addr 1
vscsi0 at root
scsibus0 at vscsi0: 256 targets
softraid0 at root
scsibus1 at softraid0: 256 targets
root on wd0a (f23e5355ea76db01.a) swap on wd0b dump on wd0b
WARNING: / was not properly unmounted

usbdevs:
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), Compaq(0x0e11), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered

pcidump:
Domain /dev/pci0:
 0:0:0: Cyrix GXm PCI
        0x0000: Vendor ID: 1078 Product ID: 0001
        0x0004: Command: 0107 Status ID: 0280
        0x0008: Class: 06 Subclass: 00 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00
        0x0010: BAR empty (00000000)
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 0000 Product ID: 0000
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
        0x0000: 00011078 02800107 06000000 00000000
        0x0010: 00000000 00000000 00000000 00000000
        0x0020: 00000000 00000000 00000000 00000000
        0x0030: 00000000 00000000 00000000 00000000
        0x0040: 41001c0e 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:6:0: NS DP83815 10/100
        0x0000: Vendor ID: 100b Product ID: 0020
        0x0004: Command: 0107 Status ID: 0290
        0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 3f Cache Line Size: 00
        0x0010: BAR io addr: 0x0000e100/0x0100
        0x0014: BAR mem 32bit addr: 0xa0000000/0x00001000
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0020
        0x0030: Expansion ROM Base Address: 3f000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 0b Max Lat: 34
        0x0040: Capability 0x01: Power Management
        0x0000: 0020100b 02900107 02000000 00003f00
        0x0010: 0000e101 a0000000 00000000 00000000
        0x0020: 00000000 00000000 00000000 0020100b
        0x0030: 3f000000 00000040 00000000 340b010a
        0x0040: ff820001 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:7:0: NS DP83815 10/100
        0x0000: Vendor ID: 100b Product ID: 0020
        0x0004: Command: 0107 Status ID: 0290
        0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 3f Cache Line Size: 00
        0x0010: BAR io addr: 0x0000e200/0x0100
        0x0014: BAR mem 32bit addr: 0xa0001000/0x00001000
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0020
        0x0030: Expansion ROM Base Address: 3f000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 0b Max Lat: 34
        0x0040: Capability 0x01: Power Management
        0x0000: 0020100b 02900107 02000000 00003f00
        0x0010: 0000e201 a0001000 00000000 00000000
        0x0020: 00000000 00000000 00000000 0020100b
        0x0030: 3f000000 00000040 00000000 340b010a
        0x0040: ff820001 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:8:0: NS DP83815 10/100
        0x0000: Vendor ID: 100b Product ID: 0020
        0x0004: Command: 0107 Status ID: 0290
        0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 3f Cache Line Size: 00
        0x0010: BAR io addr: 0x0000e300/0x0100
        0x0014: BAR mem 32bit addr: 0xa0002000/0x00001000
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0020
        0x0030: Expansion ROM Base Address: 3f000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 0b Max Lat: 34
        0x0040: Capability 0x01: Power Management
        0x0000: 0020100b 02900107 02000000 00003f00
        0x0010: 0000e301 a0002000 00000000 00000000
        0x0020: 00000000 00000000 00000000 0020100b
        0x0030: 3f000000 00000040 00000000 340b010a
        0x0040: ff820001 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:18:0: NS SC1100 ISA
        0x0000: Vendor ID: 100b Product ID: 0510
        0x0004: Command: 001f Status ID: 0280
        0x0008: Class: 06 Subclass: 01 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 80 Latency Timer: 3f Cache Line Size: 08
        0x0010: BAR io addr: 0x00006100/0x0040
        0x0014: BAR io addr: 0x00006200/0x0040
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0500
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
        0x0000: 0510100b 0280001f 06010000 00803f08
        0x0010: 00006101 00006201 00000000 00000000
        0x0020: 00000000 00000000 00000000 0500100b
        0x0030: 00000000 00000000 00000000 00000000
        0x0040: 3e4d0019 06e60001 00000000 ffffffff
        0x0050: 039e407b 00000000 28010000 0000b00a
        0x0060: 00000000 00000000 00000000 ff000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00080005 00000000 00000000 00000000
        0x0090: c0000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 b5aca704 0c9c1140 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:18:1: NS SC1100 SMI
        0x0000: Vendor ID: 100b Product ID: 0511
        0x0004: Command: 0001 Status ID: 0280
        0x0008: Class: 06 Subclass: 80 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00
        0x0010: BAR io addr: 0x00006300/0x0100
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0501
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
        0x0000: 0511100b 02800001 06800000 00000000
        0x0010: 00006301 00000000 00000000 00000000
        0x0020: 00000000 00000000 00000000 0501100b
        0x0030: 00000000 00000000 00000000 00000000
        0x0040: 00006401 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:18:2: NS SCx200 IDE
        0x0000: Vendor ID: 100b Product ID: 0502
        0x0004: Command: 0005 Status ID: 0280
        0x0008: Class: 01 Subclass: 01 Interface: 80 Revision: 01
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00
        0x0010: BAR empty (00000000)
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR io addr: 0x0000e000/0x0010
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0502
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
        0x0000: 0502100b 02800005 01018001 00000000
        0x0010: 00000000 00000000 00000000 00000000
        0x0020: 0000e001 00000000 00000000 0502100b
        0x0030: 00000000 00000000 00000000 00000000
        0x0040: 00009172 00077771 00040010 00911030
        0x0050: 00009172 00077771 00009172 00077771
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:18:5: NS SC1100 X-Bus
        0x0000: Vendor ID: 100b Product ID: 0515
        0x0004: Command: 0003 Status ID: 0280
        0x0008: Class: 06 Subclass: 80 Interface: 00 Revision: 00
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 00
        0x0010: BAR io addr: 0x00006500/0x0040
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 100b Product ID: 0505
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 00 Line: 00 Min Gnt: 00 Max Lat: 00
        0x0000: 0515100b 02800003 06800000 00000000
        0x0010: 00006501 00000000 00000000 00000000
        0x0020: 00000000 00000000 00000000 0505100b
        0x0030: 00000000 00000000 00000000 00000000
        0x0040: ffffffc1 00000000 00000000 00000000
        0x0050: 00000000 00000000 0000003f 00000000
        0x0060: 00001100 00006000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000
 0:19:0: Compaq USB OpenHost
        0x0000: Vendor ID: 0e11 Product ID: a0f8
        0x0004: Command: 0117 Status ID: 0280
        0x0008: Class: 0c Subclass: 03 Interface: 10 Revision: 08
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 38 Cache Line Size: 08
        0x0010: BAR mem 32bit addr: 0xa0003000/0x00001000
        0x0014: BAR empty (00000000)
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 0e11 Product ID: a0f8
        0x0030: Expansion ROM Base Address: 00000000
        0x0038: 00000000
        0x003c: Interrupt Pin: 04 Line: 0b Min Gnt: 00 Max Lat: 50
        0x0000: a0f80e11 02800117 0c031008 00003808
        0x0010: a0003000 00000000 00000000 00000000
        0x0020: 00000000 00000000 00000000 a0f80e11
        0x0030: 00000000 00000000 00000000 5000040b
        0x0040: 000f0000 00000000 00000000 00000000
        0x0050: 00000000 00000000 00000000 00000000
        0x0060: 00000000 00000000 00000000 00000000
        0x0070: 00000000 00000000 00000000 00000000
        0x0080: 00000000 00000000 00000000 00000000
        0x0090: 00000000 00000000 00000000 00000000
        0x00a0: 00000000 00000000 00000000 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 00000000 00000000 00000000 00000000
        0x00d0: 00000000 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000

acpidump:

Als Antwort erhielt ich:
Code:
i'm barely pointing out that your report
is incomplete/incorrect, not trying to
fix the bug (sorry, absolutely not my
bailiwick).

Hab dann noch folgendes nachgeschoben:

Code:
To: bugs@openbsd.org
Subject: Re: sharity-light => uvm_fault

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>


But I think You should be able to reproduce the issue.
I can reproduce it on all my computers.

If You need more information please let me know

Thanx

und seitdem nichts mehr gehört. :(

@mark05
Es kann durchaus sein, dass der Bug ausschliesslich den Kernel betrifft und shlight nach einem Fix problemlos funktioniert. Ein chown von einer Datei aus einer Windows-Freigabe sollte letztendlich irgendwo im /dev/null verschwinden - entweder im Kernel, oder im shlight.
Genaueres kann man aber erst sagen, wenn der Kernel funktioniert ... mal abwarten.
 
Hallo,
ich habe seinerzeit im August zu meinem ACPI Thema (bsdforen.de/showthread.php?t=26670) auch nichts mehr gehoert. Ich habe den OpenBSD Bugreport nach ein paar Tagen noch einmal gesendet, aber da war null Reaktion. Ich will ja keinen Orden fuer sowas. Aber zumindest eine kurze Nachricht faende ich schon angebracht.

Gruesse
Mario
 
Den Orden gibt es wenn du das ganze für remote Code Execution nutzbar machst. Das dürfte sobald es auf Slashdot landet und die Linuxuser lachen auch die nötige Aufmerksamkeit erzeugen.
 
Inzwischen gibt es einen Patch, doch leider bringt er bei mir keine Linderung meiner Probleme.;'(
Dennoch möchte ich ihn hier für die Nachwelt archivieren.
Code:
Index: sys/kern/vfs_cache.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_cache.c,v
retrieving revision 1.33
diff -u -p -r1.33 vfs_cache.c
--- sys/kern/vfs_cache.c	19 May 2010 08:31:23 -0000	1.33
+++ sys/kern/vfs_cache.c	31 Oct 2011 16:06:59 -0000
@@ -188,6 +188,14 @@ cache_lookup(struct vnode *dvp, struct v
 		goto remove;
 	}
 
+	/*
+	 * Move this slot to end of the regular LRU chain.
+	 */
+	if (TAILQ_NEXT(ncp, nc_lru) != NULL) {
+		TAILQ_REMOVE(&nclruhead, ncp, nc_lru);
+		TAILQ_INSERT_TAIL(&nclruhead, ncp, nc_lru);
+	}
+
 	vp = ncp->nc_vp;
 	vpid = vp->v_id;
 	if (vp == dvp) {	/* lookup on "." */
@@ -245,13 +253,6 @@ cache_lookup(struct vnode *dvp, struct v
 	}
 
 	nchstats.ncs_goodhits++;
-	/*
-	 * Move this slot to end of the regular LRU chain.
-	 */
-	if (TAILQ_NEXT(ncp, nc_lru) != NULL) {
-		TAILQ_REMOVE(&nclruhead, ncp, nc_lru);
-		TAILQ_INSERT_TAIL(&nclruhead, ncp, nc_lru);
-	}
 	*vpp = vp;
 	return (0);
 
Zurück
Oben