Solaris是一款由Sun Microsystems公司开发和维护的商业UNIX操作系统。 Solaris中的priocntl在调用参数时对用户的数据缺少正确过滤,本地攻击者可以利用这个漏洞无需ROOT权限指定加载任意内核模块,或在核心态下执行任意代码。 Solaris中的priocntl系统调用用于进程切换控制,其调用方法如下: long priocntl(idtype_t idtype, id_t id, int cmd, /* arg */ ...); 当\'\'cmd\'\'参数设置为PC_GETCID时,就会加载第四个参数所指定的模块,而priocntl()调用模块的时候没有任何权限的检查。priocntl系统调用加载内核模块的缺省路径是kernel/sched和/usr/kernel/sched(除非你在/etc/system文件中指定的其他路径),虽然这两个路径只有ROOT权限可读,我们不能写这两个目录来指定自己的模块,但是,由于priocntl()对\'\'../\'\'字符缺少正确处理,可导致本地攻击者利用这个漏洞指定任意目录中的模块进行装载,或在核心态下执行任意代码。
Solaris是一款由Sun Microsystems公司开发和维护的商业UNIX操作系统。 Solaris中的priocntl在调用参数时对用户的数据缺少正确过滤,本地攻击者可以利用这个漏洞无需ROOT权限指定加载任意内核模块,或在核心态下执行任意代码。 Solaris中的priocntl系统调用用于进程切换控制,其调用方法如下: long priocntl(idtype_t idtype, id_t id, int cmd, /* arg */ ...); 当\'\'cmd\'\'参数设置为PC_GETCID时,就会加载第四个参数所指定的模块,而priocntl()调用模块的时候没有任何权限的检查。priocntl系统调用加载内核模块的缺省路径是kernel/sched和/usr/kernel/sched(除非你在/etc/system文件中指定的其他路径),虽然这两个路径只有ROOT权限可读,我们不能写这两个目录来指定自己的模块,但是,由于priocntl()对\'\'../\'\'字符缺少正确处理,可导致本地攻击者利用这个漏洞指定任意目录中的模块进行装载,或在核心态下执行任意代码。