Apache Commons BeanUtils Information Leak and RCE Chain
CVE-2025-48734 enables attackers to enumerate the Java classpath and ClassLoader via property injection, facilitating RCE when chained with unsafe deserialization endpoints.
CVE search metadata
CVE search record: CVE-2025-48734. Severity: high. CVSS: 8.8. EPSS: 1.70%. KEV: no. Product: Commons Beanutils. Brief: Apache Commons BeanUtils Information Leak and RCE Chain. Brief link: https://feed.craftedsignal.io/briefs/2026-08-beanutils-rce/
CVE-2025-48734 affects Apache Commons BeanUtils versions prior to 1.11.0 (and 2.0.0-M2), allowing unauthenticated attackers to access the 'declaringClass' property of Java enums. By exploiting PropertyUtilsBean to access nested properties like 'enum.declaringClass.classLoader', an attacker can leak the application's ClassLoader. This vulnerability does not provide RCE directly; however, it functions as a critical reconnaissance pivot for identifying vulnerable gadget libraries (e.g., Commons Collections 3.x) within the classpath. When an application also exposes an unsafe Java deserialization endpoint, this information leak allows an attacker to reliably trigger an RCE chain. The vulnerability is highly relevant to enterprise environments utilizing legacy Java applications or shared middleware.
Attack Chain
- Attacker identifies an endpoint accepting property path inputs processed by PropertyUtilsBean (e.g., /api/property?path=...).
- Attacker injects a malicious property path targeting 'status.declaringClass' to verify access to the enum internal class.
- Attacker pivots to 'status.declaringClass.classLoader' to obtain a reference to the application ClassLoader.
- Attacker iterates through the ClassLoader URL array to enumerate all loaded JAR files, identifying presence of vulnerable gadget libraries like Commons Collections 3.2.2.
- Attacker fuzzes application endpoints (e.g., /api/data/import) to identify a target supporting Java deserialization by sending the '0xACED0005' magic header.
- Attacker utilizes ysoserial to generate a gadget-based payload (e.g., CommonsCollections6) specific to the identified environment.
- Attacker delivers the serialized payload via HTTP POST to the identified deserialization endpoint.
- Remote code execution occurs during the object reconstruction process, executing the attacker-provided command on the target host.
Impact
Successful exploitation leads to full remote code execution, granting the attacker arbitrary command execution capabilities with the privileges of the web application service account. This allows for total system compromise, data exfiltration, or lateral movement within the network. The vulnerability impacts any application using affected versions of Apache Commons BeanUtils that exposes property path manipulation combined with unsafe deserialization.
Recommendation
- Upgrade Apache Commons BeanUtils to version 1.11.0 or 2.0.0-M2 immediately to patch CVE-2025-48734.
- Implement strict Java ObjectInputFilter controls on all deserialization endpoints to permit only necessary classes.
- Audit application code for usage of PropertyUtilsBean where the 'path' parameter is derived from untrusted user input.
- Use the CVE-2025-48734 remediation to prevent classpath enumeration reconnaissance, breaking the RCE chain at the initial discovery phase.
Immediate actions
Patch Apache Commons Beanutils in all production Java applications
Mitigations
Deploy ObjectInputFilter to restrict deserialization
RCE delivery vector
Detection coverage 1
Detect CVE-2025-48734 Exploitation Attempt - Property Access
highDetects suspicious access to 'declaringClass' or 'classLoader' properties via web application endpoints.
Detection queries are available on the platform. Get full rules →