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.

Analysis

AI-generated

Technical impact

Apache Commons BeanUtils has an improper access control flaw that allows attackers to retrieve the declaredClass property from Java enum objects when they supply unchecked property paths to PropertyUtilsBean. The declaredClass property exposes the enum's class loader, giving an attacker the ability to load and execute arbitrary code, effectively enabling remote code execution. This weakness is represented by CWE-284 (Improper Access Control).

Affected Systems

Applications using Apache Commons BeanUtils version 1.x before 1.11.0 or 2.x before 2.0.0-M2 are affected, including many Red-Hat distributions that incorporate the library in products such as AMQ Streams 2.9, Apache Camel Spring Boot 4, Camel Quarkus 3, Cryostat 4, JBoss Enterprise Application Platform 7, 7.4, 8, and their various Linux releases. Any service that passes untrusted property paths to the getProperty or getNestedProperty methods is potentially vulnerable.

Risk and Exploitability

The CVSS score of 8.8 indicates a high severity of the vulnerability, but the EPSS score of 1% suggests a low probability of exploitation at this time. The flaw is not included in the CISA KEV catalog. Attackers would need to provide crafted property paths that reference the declaredClass property; if successful, they can exploit the class-loader exposure to run arbitrary code on the application's host. The vulnerability is exploitable from the application level, and an attacker does not need direct network access to the system itself beyond the vector that allows injection of the property path.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Apache Commons BeanUtils to 1.11.0 or newer for 1.x releases, or to 2.0.0-M2 or newer for 2.x releases
  • Ensure that any user-supplied property paths are validated or sanitized before being passed to PropertyUtilsBean or its equivalent methods
  • Verify that the BeanIntrospector that suppresses the declaredClass property is enabled (it is the default in the patched versions)
  • If upgrading is not immediately possible, restrict or remove access to the BeanUtilsBean functionality from external components that receive untrusted input

Generated by OpenCVE AI on June 18, 2026 at 06:56 UTC.

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
Weaknesses

Sources

Status
PUBLISHED
Assigner
apache
Published
Updated
Nov 3, 2026, 10:03 PM
Reserved
May 23, 2025, 12:30 PM
Status
Modified
Published
May 28, 2025, 2:15 PM
Modified
Nov 3, 2026, 10:17 PM
Severity
Important
Public date
May 28, 2025, 1:32 PM