Skip to main content
Mallory
CriticalPublic exploit

Apache Commons Collections Java Deserialization RCE

IdentifiersCVE-2015-7501CWE-502· Deserialization of Untrusted Data

CVE-2015-7501 is a remote code execution vulnerability affecting numerous Red Hat products that bundled or exposed vulnerable Apache Commons Collections functionality during Java deserialization. The issue arises when attacker-controlled serialized Java objects are deserialized and a gadget chain from the Apache Commons Collections library is available, allowing execution of arbitrary commands. The provided content specifically identifies affected Red Hat offerings including JBoss A-MQ 6.x, BPMS 6.x, BRMS 5.x/6.x, JDG 6.x, JDV 5.x/6.x, JBoss EAP 4.3.x/5.x/6.x, Fuse 6.x, FSW 6.x, JBoss ON 3.x, Portal 6.x, SOA-P 5.x, JWS 3.x, OpenShift/xPAAS 3.x, and Red Hat Subscription Asset Manager 1.3. The vulnerability is related to the Apache Commons Collections library and exploitation is performed via a crafted serialized Java object.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation can result in unauthenticated remote execution of arbitrary commands in the context of the vulnerable Java application server or product component. Depending on the privileges of the affected service, this can lead to full compromise of the application instance, deployment of malware or web shells, theft or modification of application data, lateral movement, and persistence. The content also notes this vulnerability was hypothesized as an intrusion vector for compromise of legitimate JBoss Application Server-hosted websites later used in malware operations.

Mitigation

If you can’t patch tonight, do this now.

Do not deserialize untrusted data. Where deserialization cannot be eliminated, enforce strict class allow-listing or Java serialization filtering such as JEP 290-style filters, and prevent untrusted inputs from reaching Java deserialization code paths. Reduce attack surface by disabling or restricting endpoints and features that accept serialized objects, limiting network exposure to management and application interfaces, and running affected services with least privilege. Monitor for exploitation attempts involving serialized object payloads and suspicious command execution from Java processes.

Remediation

Patch, then assume compromise.

Apply vendor fixes for the affected Red Hat products and update vulnerable Apache Commons Collections components to fixed releases. The supplied content indicates fixed upstream library versions include commons-collections 3.2.2 or later and commons-collections4 4.1 or later; for bundled enterprise products, use the vendor-provided patched release rather than updating libraries ad hoc where unsupported. Validate that all exposed deserialization paths in the affected middleware stack are covered by the product update.
PUBLIC EXPLOITS

Exploits

1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 1 / 1 TOTALView more in app
CVE-2015-7501MaturityPoCVerified exploit

This repository is a comprehensive Java deserialization exploitation lab, containing multiple proof-of-concept (PoC) exploits and a vulnerable HTTP server for testing. The code samples demonstrate how to craft malicious serialized Java objects (both binary and XML) that exploit gadget chains in Apache Commons Collections (<= 3.2.1) and Java's own classes to achieve arbitrary code execution upon deserialization. Key files include: - `VulnerableHTTPServer.java`: A test server that accepts serialized objects via HTTP POST, cookies, or XML, and deserializes them, simulating real-world vulnerable applications. - `ExampleCommonsCollections1.java`, `ExampleTransformersWithLazyMap.java`, `ReverseShellCommonsCollectionsHashMap.java`, and `reverseShellMultiplatformCommonsCollections.xml`: These files generate payloads that, when deserialized, execute arbitrary commands or establish a reverse shell by loading a remote class from an attacker-controlled server. - `DnsWithCommonsCollections.java`: Generates a payload that triggers an HTTP/DNS request to an attacker-controlled domain, useful for blind exploitation validation. - `ExploitGadgetExample1.java`, `ForgottenClass.java`, and `SomeInvocationHandler.java`: Demonstrate custom gadget chains and the use of Java reflection and proxies to hijack execution flow during deserialization. - `TestSerialize.java` and `TestDeserialize.java`: Simple serialization/deserialization demos. The repository targets Java applications that deserialize untrusted data, especially those with vulnerable versions of Apache Commons Collections in the classpath. It includes PoCs for CVE-2017-7504 and CVE-2017-12149 (affecting JBoss products), and demonstrates both local and remote (network) attack vectors. The payloads can be delivered via HTTP POST, cookies, or XML, and can result in arbitrary command execution or reverse shells. Several endpoints and file paths are fingerprintable, including remote JAR URLs and files created on the target system as a result of exploitation.

ianxtianxtDisclosed Feb 21, 2020javaxmlnetworklocal
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
Apache Software FoundationCommons Collectionsapplication
Apache Software FoundationCommons-Collections4application
Apache Software FoundationOrg.Apache.Servicemix.Bundles.Collections-Genericapplication
Apache Software FoundationOrg.Apache.Servicemix.Bundles.Commons-Collectionsapplication
Red HatData Gridapplication
Red HatJboss A-Mqapplication
Red HatJboss Bpm Suiteapplication
Red HatJboss Data Virtualizationapplication
Red HatJboss Enterprise Application Platformapplication
Red HatJboss Enterprise Brms Platformapplication
Red HatJboss Enterprise Soa Platformapplication
Red HatJboss Enterprise Web Serverapplication
Red HatJboss Fuseapplication
Red HatJboss Fuse Service Worksapplication
Red HatJboss Operations Networkapplication
Red HatJboss Portalapplication
Red HatOpenshiftapplication
Red HatSubscription Asset Managerapplication
Red HatXpaasapplication
SourceforgeCollections-Genericapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence2

Every observed campaign linking this CVE to a named adversary.

Associated malware3

Malware families riding this exploit, with evidence and IOCs.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity

Community discussion across Reddit, Mastodon, and other social sources.