COMMAND
kernel
SYSTEMS AFFECTED
OpenBSD (NetBSD?)
PROBLEM
Jason Downs posted following rather simple method of crashing most
OpenBSD systems (and, perhaps, NetBSD or anything else running
4.4BSD vm without this problem fixed). Most, if not all, kernels
have process limits high enough for a normal user to run the
kernel out of non-pageable map entries. The easiest way to do
this is with the enclosed script.
If the per-user process/descriptor limits are high enough, running
this script will result in a kernel panic.
#!/bin/csh
set path = ( /usr/bin /usr/sbin /bin /sbin )
unlimit
cd /tmp
if ( -e fifo ) then
rm fifo
endif
mkfifo fifo
while ( 1 )
cat fifo >& /dev/null &
end
On FreeBSD 2.2.5-RELEASE with kernel options CHILD_MAX=128,
OPEN_MAX=128, DFLDSIZ=(16*1024*1024) the execution of that script
caused to "too many open files" at the user level and "can't open
/usr/lib/libc.so" or some similar library at the system level (no
logins, no execs and so on). Kernel didn't panic and opened files
still were available, as open network connections too (rlogins).
Failed to stop this process, even when pressed ^C at the console
running that script. After Ctrl-Alt-Del to reboot (filesystems
were synchronized before reboot) the message:
`date` newsyslog[$PID]: log file turned over in /var/log/messages
will appear which is bad condition.
SOLUTION
Nothing so far.