Another Oracle CPU drop, another batch of WebLogic deserialization and path-traversal bugs that ransomware crews already know how to weaponize
The January 2022 Oracle Critical Patch Update bundles roughly two dozen WebLogic fixes against versions 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, and 14.1.1.0.0. The headline issues are CVE-2022-21306 (T3/IIOP core deserialization, unauthenticated, network-reachable, CVSSv3 9.8), CVE-2022-21371 (Web Container local file inclusion / path traversal, now CISA KEV-listed with a Feb 13 2025 due date), and CVE-2022-21292 in the Samples component. The Tenable plugin also chains in the tail end of the Log4Shell family — *CVE-2021-44832* and *CVE-2021-4104* — both of which WebLogic ships with.
Tenable rates the bundle HIGH (CVSSv3 7.5) because that's the score of the *least-bad* covered CVE. That undersells reality. The actual ceiling here is the T3 deserialization RCE plus a KEV-listed file-read primitive on a product whose attack surface has been continuously exploited (CVE-2017-10271, CVE-2019-2725, CVE-2020-14882, CVE-2020-2883, CVE-2023-21839) by every commodity botnet and ransomware affiliate for the last eight years. Vendor severity is understated — this is a CRITICAL on any WebLogic host carrying production workloads.
5 steps from start to impact.
Discover exposed WebLogic admin/T3 ports
/console/login/LoginForm.jsp, /em) on 7001/7002 or scans for raw T3 banners. Mass scanners (zgrab2, nuclei templates weblogic-detect.yaml) and Shodan facets product:"Oracle WebLogic" make this trivial. Internet-exposed WebLogic still sits in the tens of thousands of hosts per Shodan.- Network reachability to HTTP/HTTPS or T3/T3s port
- Default service banner not stripped
- Mature shops front WebLogic with a WAF / reverse proxy that hides /console
- T3 is rarely exposed to the internet on hardened deployments
weblogic-detect, shodan product:weblogic all flag itTrigger CVE-2022-21306 T3/IIOP deserialization
- T3 or IIOP reachable from attacker position
- Patch not applied — install at <Jan 2022 CPU baseline
- T3 filter rules (
weblogic.security.net.ConnectionFilterImpl) when correctly configured drop external T3 - Network segmentation that limits T3 to backend tier
java.exe/startWebLogic.shOR — abuse CVE-2022-21371 web-container path traversal
SerializedSystemIni.dat, config.xml, boot.properties — yielding the AES key and the encrypted WebLogic admin password. Decryption with WebLogicPasswordDecryptor returns cleartext admin creds.- HTTP/HTTPS reachable
- Unpatched WebLogic
- WAF rules covering generic LFI patterns may catch the specific path
- Read-only domain layout limits what files are reachable
../ and %2e%2e sequences against WebLogic URIs; file-integrity monitoring on the WL domain dirAuthenticate to admin console and deploy malicious WAR
/console, deploys a JSP webshell WAR (cmd.war, behinder.war, godzilla.war), and gets command execution as the WebLogic user. This is the same playbook used by DarkIRC, Kinsing, TeamTNT, and 8220 Gang cryptominers.- Admin console reachable
- Deploy permission for the recovered account
- Console restricted by network ACL to admin VLAN only
- Read-only admin accounts
Privilege escalation and lateral movement
oracle on Linux or a domain service account on Windows. Attacker steals datasource credentials from config.xml to reach back-end Oracle DBs, dumps Kerberos tickets via Rubeus on Windows, or stages ransomware (LockBit, BlackBasta affiliates have used WebLogic as initial access). Blast radius reaches the data tier and adjacent middleware in one hop.- Code execution from step 2 or 4
- Lateral reachability to DB / AD
- Service account with no domain rights
- Database firewalling that limits SQL surface
weblogic.security.net.ConnectionFilterImpl to deny T3/T3s/IIOP from anything but the admin VLAN. Deploy within 3 days per the noisgate mitigation SLA for CRITICAL./console, /em, /wls-wsat, /_async/. Same 3-day window...%2f, double-encoded traversal, and known T3 magic bytes. F5, Akamai, AWS WAF, and ModSecurity all ship rule packs for WebLogic CVE classes.SerializedSystemIni.dat was read and admin creds leaked. Rotate before patching to invalidate any previously stolen secrets.- Disabling the Samples component alone — CVE-2022-21306 and CVE-2022-21371 are in Core and Web Container, not Samples.
- Java version updates — these are application-layer bugs in WebLogic's own code; bumping JDK does nothing.
- Network segmentation alone — the LFI variant is HTTP, not T3, so blocking T3 doesn't cover the KEV-listed CVE.
- Relying on TLS — TLS only encrypts; the gadget payload is valid traffic to WebLogic.
The supporting signals.
| In-the-wild exploitation | CVE-2022-21371 added to CISA KEV (due date 2025-02-13). WebLogic family has continuous exploitation by Kinsing, 8220 Gang, TeamTNT, and ransomware affiliates. |
|---|---|
| Public PoC availability | PoCs on GitHub for CVE-2022-21306 (Y4er/CVE-2022-21306, BabyTeam1024/CVE-2022-21306) and CVE-2022-21371 (hktalent repos). Metasploit modules adapted from CVE-2020-2883 chain. |
| EPSS | CVE-2022-21306 ≈ 0.92 (97th percentile); CVE-2022-21371 ≈ 0.78 (95th percentile) |
| KEV status | CVE-2022-21371 listed; deadline already past for federal agencies |
| CVSS vector (worst CVE in bundle) | CVE-2022-21306: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical) — unauth network RCE |
| Affected versions | WebLogic 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0 prior to January 2022 CPU |
| Fixed by | Apply January 2022 CPU patches per Oracle advisory; subsequent CPUs (Apr/Jul/Oct 2022, 2023, 2024, 2025) supersede |
| Exposure data | Shodan product:"Oracle WebLogic" consistently returns 20k–40k internet-exposed instances; Censys shows similar; T3 exposure smaller but non-zero |
| Disclosure date | 2022-01-18 (Oracle CPU) |
| Reporters | Multiple — Oracle credits researchers including Yongtao Wang, @testanull, and others in the CPU acknowledgements |
Sources.
Why this verdict
- KEV-listed: CVE-2022-21371 is on CISA's Known Exploited Vulnerabilities catalog — federal due date already lapsed, meaning real campaigns observed in the wild.
- Unauth network RCE in same bundle: CVE-2022-21306 is a T3/IIOP deserialization RCE with CVSS 9.8 and public PoCs; Tenable's HIGH rating reflects the weakest CVE, not the worst.
- Role multiplier: WebLogic is the canonical Java EE app server for Oracle EBS, PeopleSoft, and bespoke enterprise apps — the chain ends in datasource credential theft and DB compromise, not a single-host pop. Floor is CRITICAL.
- Friction is moderate, not high: T3 is often filtered externally but rarely between internal tiers; the LFI alternative works over plain HTTP and bypasses T3 hardening entirely.
- Continuous exploitation history: WebLogic has been the persistent favorite of Kinsing, 8220 Gang, TeamTNT and LockBit affiliates — patch lag here gets you owned.
Why not higher?
There is no higher bucket than CRITICAL. The reassessed numeric score is held at 9.1 rather than 9.8 because the worst single CVE (T3 deserialization) often requires internal positioning when T3 is properly filtered at the edge.
Why not lower?
Downgrading to HIGH would ignore the KEV listing and the unauth RCE in the same bundle. Any WebLogic instance carrying production data is a high-value-role host by definition, so the deployment-role floor is CRITICAL regardless of network friction.
Crowdsourced verification payload.
Run on each WebLogic middle-tier host as the oracle (or whichever) WebLogic owner. Invoke as ./check_wls_jan2022_cpu.sh /u01/app/oracle/middleware. Requires read access to the WL home and registry.xml.
#!/usr/bin/env bash
# noisgate verifier: Oracle WebLogic Server Jan 2022 CPU (Tenable 157127)
# Usage: ./check_wls_jan2022_cpu.sh <WL_HOME>
# Exit codes: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN
set -u
WL_HOME="${1:-/u01/app/oracle/middleware}"
REG="$WL_HOME/inventory/registry.xml"
if [[ ! -f "$REG" ]]; then
echo "UNKNOWN: registry.xml not found at $REG"
exit 2
fi
# Extract WL base version
VER=$(grep -oE 'name="WebLogic Server"[^>]*version="[0-9.]+"' "$REG" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1)
echo "WebLogic version: ${VER:-unknown}"
case "$VER" in
12.1.3.0.0|12.2.1.3.0|12.2.1.4.0|14.1.1.0.0) ;;
"") echo "UNKNOWN: cannot parse version"; exit 2 ;;
*) echo "PATCHED: version $VER not in affected list"; exit 0 ;;
esac
# Look for Jan 2022 CPU patch IDs in OPatch inventory
if command -v "$WL_HOME/OPatch/opatch" >/dev/null 2>&1; then
PATCHES=$("$WL_HOME/OPatch/opatch" lsinventory 2>/dev/null | grep -E '33727616|33591019|33727640|33697227' )
if [[ -n "$PATCHES" ]]; then
echo "PATCHED: Jan 2022 CPU patch detected"
echo "$PATCHES"
exit 0
fi
fi
echo "VULNERABLE: WebLogic $VER without Jan 2022 (or later) CPU patch applied"
exit 1