Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

Apache Shiro rememberMe Deserialization RCE

IdentifiersCVE-2016-4437CWE-502

CVE-2016-4437 affects Apache Shiro before 1.2.5. When the rememberMe feature is enabled and no custom cipher key has been configured, Shiro uses a known/default AES key in CookieRememberMeManager. The rememberMe cookie value is serialized, AES-encrypted, and Base64-encoded; because the key is known, an unauthenticated remote attacker can craft a malicious serialized Java object, encrypt it with the default key, and supply it via the rememberMe cookie to trigger unsafe deserialization on the server. Public reporting also notes that exploitation may permit bypass of intended access restrictions in addition to arbitrary code execution.

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 code execution in the context of the affected Java application, with high impact to confidentiality, integrity, and availability. Depending on the application and hosting environment, this can enable full compromise of the application, execution of arbitrary commands, deployment of web shells or memory-resident implants, theft or modification of sensitive data, and service disruption. The vulnerability has also been described as enabling bypass of intended access restrictions.

Mitigation

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

If immediate upgrade is not possible, disable the rememberMe feature where feasible. Configure a non-default, strong cipher key for rememberMe cookie protection and rotate any known or suspected default key material. In front of the application, monitor for and block suspicious rememberMe cookie values indicative of serialized payload delivery, and restrict exposure of vulnerable Shiro-backed services to trusted networks where possible. These measures reduce exposure but do not replace upgrading to a fixed version.

Remediation

Patch, then assume compromise.

Upgrade Apache Shiro to version 1.2.5 or later. Ensure the rememberMe feature does not rely on the default or hardcoded cipher key; configure a unique, strong application-specific key and rotate any previously exposed or reused keys. Review deployments, example code, container images, and configuration repositories for inherited default Shiro keys and replace them consistently across all nodes. Because exploitation uses deserialization through rememberMe cookie handling, validate that affected applications are no longer accepting attacker-controlled serialized rememberMe payloads after upgrade and key replacement.
PUBLIC EXPLOITS

Exploits

2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).

VALID 2 / 3 TOTALView more in app
Awesome_shiroMaturityPoCVerified exploit

This repository is a comprehensive exploitation toolkit for Apache Shiro <= 1.2.4 (CVE-2016-4437), focusing on the 'rememberMe' deserialization vulnerability. It provides multiple Python scripts for different attack stages: key/module brute-forcing (shiro_crack.py, shiro_piliang_crack.py), remote code execution (shiro-rce/shiro_rce.py, shiro_shuyu/shiro_rce.py), reverse shell access (shiro_getshell/shiro_getshell.py), and detection/fuzzing (fuzz-shiro/check_shiro.py, thread_check.py). The core technique is to generate malicious serialized Java objects (using ysoserial.jar) encrypted with various known Shiro keys, and deliver them via the 'rememberMe' cookie in HTTP requests. The toolkit supports both single-target and batch exploitation, and includes modules for different gadget chains (CommonsBeanutils1, CommonsCollections1-6, JRMPClient). The repository is operational and can be used to achieve full remote code execution and shell access on vulnerable Shiro deployments.

bkfishDisclosed May 27, 2020pythonnetwork
shisoserialMaturityPoCVerified exploit

This repository provides a Python-based exploit tool ('shisoserial.py') targeting Apache Shiro deserialization vulnerabilities, specifically CVE-2016-4437. The tool can: - Check if a target web application is using the Shiro framework by probing for the 'rememberMe' cookie behavior. - Brute-force the Shiro encryption key using a built-in dictionary ('lib/shiro_keys.txt') or a user-supplied key. - Generate and deliver ysoserial-based Java deserialization payloads (using either CBC or GCM encryption) to exploit vulnerable Shiro instances, enabling remote command execution (default command: 'whoami', customizable by the user). - Support batch targeting via a file of URLs, proxy configuration, POST/GET methods, and multithreading for mass exploitation. The main entry point is 'shisoserial.py', which implements all exploit logic and command-line parsing. The repository also includes documentation in both English and Chinese, a requirements file for dependencies, and a list of common Shiro keys. The attack vector is network-based, targeting web applications over HTTP/HTTPS. The tool is operational and provides real exploitation capabilities, not just detection.

4nth0ny1130Disclosed Dec 23, 2021pythonnetwork
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 FoundationAuroraapplication
Apache Software FoundationShiroapplication
Red HatFuseapplication
Red HatJboss Middleware Text-Only Advisoriesapplication

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 malware4

Malware families riding this exploit, with evidence and IOCs.

Detection signatures1

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 activity1

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