CVE-2025-48734

Apache Commons BeanUtils: PropertyUtilsBean does not suppresses an enum's declaredClass property by default

Published May 28, 2025 CVSS 3.1 · 8.8 High EPSS 2.0% KEV · Not listed
Description
Improper Access Control vulnerability in Apache Commons.



A special BeanIntrospector class was added in version 1.9.2. This can be used to stop attackers from using the declared class property of Java enum objects to get access to the classloader. However this protection was not enabled by default. PropertyUtilsBean (and consequently BeanUtilsBean) now disallows declared class level property access by default.





Releases 1.11.0 and 2.0.0-M2 address a potential security issue when accessing enum properties in an uncontrolled way. If an application using Commons BeanUtils passes property paths from an external source directly to the getProperty() method of PropertyUtilsBean, an attacker can access the enum’s class loader via the “declaredClass” property available on all Java “enum” objects. Accessing the enum’s “declaredClass” allows remote attackers to access the ClassLoader and execute arbitrary code. The same issue exists with PropertyUtilsBean.getNestedProperty().
Starting in versions 1.11.0 and 2.0.0-M2 a special BeanIntrospector suppresses the “declaredClass” property. Note that this new BeanIntrospector is enabled by default, but you can disable it to regain the old behavior; see section 2.5 of the user's guide and the unit tests.

This issue affects Apache Commons BeanUtils 1.x before 1.11.0, and 2.x before 2.0.0-M2.Users of the artifact commons-beanutils:commons-beanutils

1.x are recommended to upgrade to version 1.11.0, which fixes the issue.


Users of the artifact org.apache.commons:commons-beanutils2

2.x are recommended to upgrade to version 2.0.0-M2, which fixes the issue.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4229-1 commons-beanutils security update
EUVD EUVD EUVD-2025-16219 Apache Commons Improper Access Control vulnerability
Github GHSA Github GHSA GHSA-wxr5-93ph-8wr9 Apache Commons Improper Access Control vulnerability
Ubuntu USN Ubuntu USN USN-8322-1 Apache Commons BeanUtils vulnerability
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Metrics epss

{'score': 0.00215}

epss

{'score': 0.00296}

Type Values Removed Values Added
CPEs cpe:/a:redhat:jboss_enterprise_application_platform:8.0::el8
cpe:/a:redhat:jboss_enterprise_application_platform:8.0::el9
Type Values Removed Values Added
First Time appeared Redhat amq Streams
CPEs cpe:/a:redhat:amq_streams:2.9::el9
Vendors & Products Redhat amq Streams
Type Values Removed Values Added
First Time appeared Redhat apache Camel Spring Boot
Redhat rhel Eus
CPEs cpe:/a:redhat:apache_camel_spring_boot:4
cpe:/a:redhat:rhel_eus:9.4::crb
Vendors & Products Redhat apache Camel Spring Boot
Redhat rhel Eus
Type Values Removed Values Added
CPEs cpe:/a:redhat:enterprise_linux:8::crb
Type Values Removed Values Added
CPEs cpe:/o:redhat:enterprise_linux:10.0
Type Values Removed Values Added
First Time appeared Redhat enterprise Linux
Redhat jboss Enterprise Application Platform
CPEs cpe:/a:redhat:enterprise_linux:9::crb
cpe:/a:redhat:jboss_enterprise_application_platform:7
cpe:/a:redhat:jboss_enterprise_application_platform:7.4::el7
cpe:/a:redhat:jboss_enterprise_application_platform:7.4::el8
cpe:/a:redhat:jboss_enterprise_application_platform:7.4::el9
Vendors & Products Redhat enterprise Linux
Redhat jboss Enterprise Application Platform
Type Values Removed Values Added
First Time appeared Redhat camel Quarkus
CPEs cpe:/a:redhat:camel_quarkus:3
Vendors & Products Redhat camel Quarkus
Type Values Removed Values Added
First Time appeared Apache
Apache commons Beanutils
Weaknesses NVD-CWE-Other
CPEs cpe:2.3:a:apache:commons_beanutils:*:*:*:*:*:*:*:*
cpe:2.3:a:apache:commons_beanutils:2.0.0:milestone1:*:*:*:*:*:*
Vendors & Products Apache
Apache commons Beanutils
Type Values Removed Values Added
First Time appeared Redhat
Redhat cryostat
CPEs cpe:/a:redhat:cryostat:4::el9
Vendors & Products Redhat
Redhat cryostat
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Improper Access Control vulnerability in Apache Commons. A special BeanIntrospector class was added in version 1.9.2. This can be used to stop attackers from using the declared class property of Java enum objects to get access to the classloader. However this protection was not enabled by default. PropertyUtilsBean (and consequently BeanUtilsBean) now disallows declared class level property access by default. Releases 1.11.0 and 2.0.0-M2 address a potential security issue when accessing enum properties in an uncontrolled way. If an application using Commons BeanUtils passes property paths from an external source directly to the getProperty() method of PropertyUtilsBean, an attacker can access the enum’s class loader via the “declaredClass” property available on all Java “enum” objects. Accessing the enum’s “declaredClass” allows remote attackers to access the ClassLoader and execute arbitrary code. The same issue exists with PropertyUtilsBean.getNestedProperty(). Starting in versions 1.11.0 and 2.0.0-M2 a special BeanIntrospector suppresses the “declaredClass” property. Note that this new BeanIntrospector is enabled by default, but you can disable it to regain the old behavior; see section 2.5 of the user's guide and the unit tests. This issue affects Apache Commons BeanUtils 1.x before 1.11.0, and 2.x before 2.0.0-M2.Users of the artifact commons-beanutils:commons-beanutils 1.x are recommended to upgrade to version 1.11.0, which fixes the issue. Users of the artifact org.apache.commons:commons-beanutils2 2.x are recommended to upgrade to version 2.0.0-M2, which fixes the issue.
Title Apache Commons BeanUtils: PropertyUtilsBean does not suppresses an enum's declaredClass property by default
Weaknesses CWE-284
References