blob: 2d7cef1992d3958ea559438564aef9ea9bc6b3e4 [file]
<?xml version="1.0"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding
copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may
obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the
License. -->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd">
<properties>
<title>Apache Commons Security Reports</title>
<author email="dev@commons.apache.org">Apache Commons Team</author>
</properties>
<body>
<section name="About Security">
<p>
For information about reporting or asking questions about security, please see
<a href="https://commons.apache.org/security.html">Apache Commons Security</a>
.
</p>
<p>This page lists all security vulnerabilities fixed in released versions of this component.
</p>
<p>Please note that binary patches are never provided. If you need to apply a source code patch, use the building instructions for the component version
that you are using.
</p>
<p>
If you need help on building this component or other help on following the instructions to mitigate the known vulnerabilities listed here, please send
your questions to the
public
<a href="mail-lists.html">user mailing list</a>
.
</p>
<p>If you have encountered an unlisted security vulnerability or other unexpected behavior that has security impact, or if the descriptions here are
incomplete, please report
them privately to the Apache Security Team. Thank you.
</p>
</section>
<section name="Security Vulnerabilities">
<subsection name="CVE-2019-10086">
<ul>
<li>CVE-2019-10086: Apache Commons Beanutils does not suppresses the class property in PropertyUtilsBean by default.</li>
<li>Severity: Medium</li>
<li>Vendor: The Apache Software Foundation</li>
<li>Versions Affected: commons-beanutils-1.9.3 and earlier</li>
<li>Description: A special BeanIntrospector class was added in version 1.9.2.
This can be used to stop attackers from using the class property of
Java objects to get access to the classloader.
However this protection was not enabled by default.
PropertyUtilsBean (and consequently BeanUtilsBean) now disallows class
level property access by default, thus protecting against
CVE-2014-0114.
</li>
<li>Mitigation: 1.X users should migrate to 1.9.4.</li>
<li>Credit: This was discovered by Melloware (https://melloware.com/).</li>
</ul>
<p>
Example:
</p>
<pre>
/**
* Example displaying the new default behavior such that
* it is not possible to access class level properties utilizing the
* BeanUtilsBean, which in turn utilizes the PropertyUtilsBean.
*/
public void testSuppressClassPropertyByDefault() throws Exception {
final BeanUtilsBean bub = new BeanUtilsBean();
final AlphaBean bean = new AlphaBean();
try {
bub.getProperty(bean, "class");
fail("Could access class property!");
} catch (final NoSuchMethodException ex) {
// ok
}
}
/**
* Example showing how by which one would use to revert to the
* behaviour prior to the 1.9.4 release where class level properties were accessible by
* the BeanUtilsBean and the PropertyUtilsBean.
*/
public void testAllowAccessToClassProperty() throws Exception {
final BeanUtilsBean bub = new BeanUtilsBean();
bub.getPropertyUtils().removeBeanIntrospector(SuppressPropertiesBeanIntrospector.SUPPRESS_CLASS);
final AlphaBean bean = new AlphaBean();
String result = bub.getProperty(bean, "class");
assertEquals("Class property should have been accessed", "class org.apache.commons.beanutils2.AlphaBean", result);
}
</pre>
<p>
References:
</p>
<ol>
<li>https://issues.apache.org/jira/browse/BEANUTILS-520</li>
<li>http://commons.apache.org/proper/commons-beanutils/</li>
</ol>
</subsection>
</section>
</body>
</document>