Miggo Logo

CVE-2025-48734:
Apache Commons Improper Access Control vulnerability

8.8

CVSS Score
3.1

Basic Information

EPSS Score
0.44169%
Published
5/28/2025
Updated
5/28/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
commons-beanutils:commons-beanutilsmaven>= 1.0, <= 1.10.11.11.0
org.apache.commons:commons-beanutils2maven>= 2.0.0-M1, < 2.0.0-M22.0.0-M2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2025-48734) in Apache Commons BeanUtils allows attackers to access an enum's classloader via the 'declaredClass' property, potentially leading to arbitrary code execution. This occurs when an application passes externally sourced property paths to PropertyUtilsBean.getProperty() or PropertyUtilsBean.getNestedProperty().

The commit bd20740da25b69552ddef8523beec0837297eaf9 addresses this by introducing SuppressPropertiesBeanIntrospector.SUPPRESS_DECLARING_CLASS and enabling it by default in PropertyUtilsBean.resetBeanIntrospectors(). This method configures the introspectors used by PropertyUtilsBean.

The vulnerable functions are org.apache.commons.beanutils2.PropertyUtilsBean.getProperty and org.apache.commons.beanutils2.PropertyUtilsBean.getNestedProperty. Since org.apache.commons.beanutils2.BeanUtilsBean.getProperty uses PropertyUtilsBean for property retrieval, it is also affected.

Prior to the patch, these methods would resolve the declaringClass property on enum objects. An attacker could then chain this with .classLoader (e.g., myEnum.declaringClass.classLoader) to gain access to the classloader. The patch mitigates this by ensuring that declaringClass is suppressed by default during property introspection for enums. The provided test cases in EnumDeclaringClassTest.java confirm this behavior and the effectiveness of the fix.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

Improp*r ****ss *ontrol vuln*r**ility in *p**** *ommons. * sp**i*l ***nIntrosp**tor *l*ss w*s ***** in v*rsion *.*.*. T*is **n ** us** to stop *tt**k*rs *rom usin* t** ***l*r** *l*ss prop*rty o* J*v* *num o*j**ts to **t ****ss to t** *l*sslo***r.

Reasoning

T** vuln*r**ility (*V*-****-*****) in *p**** *ommons ***nUtils *llows *tt**k*rs to ****ss *n *num's *l*sslo***r vi* t** '***l*r***l*ss' prop*rty, pot*nti*lly l***in* to *r*itr*ry *o** *x**ution. T*is o**urs w**n *n *ppli**tion p*ss*s *xt*rn*lly sour*