正如主题所述,为什么它需要在readObject()中重写AtomicReferenceArray方法,而在AtomicIntegerArray和AtomicLongArray中却没有readObject()覆盖方法?
发布于 2020-10-31 14:02:07
原因可能在bug票证https://bugzilla.redhat.com/show_bug.cgi?id=788994 (Bug 788994 (CVE-2011-3571,CVE-2012-0507) - CVE-2012-0507 OpenJDK: AtomicReferenceArray不足数组类型检查(并发性,7082299)中解释):
AtomicReferenceArray类实现没有正确检查数组是否为预期的Object[]类型。恶意Java应用程序或applet可能利用此漏洞导致Java虚拟机崩溃或绕过Java沙箱限制。
因此,他们添加了readObject()方法来检查提交https://github.com/openjdk/jdk/commit/e088fb2b1a3413a9d040346fd02ebb6bcd7db9cf中的类型(7082299: AtomicReferenceArray应该确保数组是Object[])
https://stackoverflow.com/questions/64622143
复制相似问题