← Back to Feed CACHED · 2026-07-24 13:37:19 · CACHE_KEY CVE-2026-60199
CVE-2026-60199 · CWE-306 · Disclosed 2026-07-21

Vulnerability in the Oracle WebLogic Server product of Oracle Fusion Middleware

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

The WebLogic HTTP listener gets a fresh no-auth kick-in-the-door, and it's the same door thousands of shops still leave facing the internet

CVE-2026-60199 is a Core-component flaw in Oracle WebLogic Server reachable over the standard HTTP listener (siblings CVE-2026-60198/60202/60204 hit T3/IIOP and CVE-2026-60200 hits SOAP). Oracle's terse advisory language is the giveaway: AV:N/AC:L/PR:N/UI:N with full CIA impact and CWE-306 (missing authentication) — a pre-auth request path lands remote code execution. Affected versions per the July 2026 CPU are 12.2.1.4.0, 14.1.1.0.0, 14.1.2.0.0, and 15.1.1.0.0; fix is the cumulative July 2026 CPU bundle.

Vendor severity matches reality. WebLogic has been the poster child for unauth deserialization-class RCEs for a decade (CVE-2017-10271, CVE-2019-2725, CVE-2020-14882, CVE-2023-21839) and Oracle almost never overstates on these — if anything the vector tends to be under-described. HTTP is the *most* exposed listener of the WebLogic quartet: it fronts admin consoles, /console, /wls-wsat, and app deployments, and it's the one most likely to survive a perimeter review because 'it's just a web app.' A working exploit will surface fast; treat the clock as already ticking.

"Unauthenticated HTTP RCE on a middleware tier that historically lives at the edge — Oracle's 9.8 stands. Patch cycle starts now."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Discover reachable WebLogic HTTP listener

Attacker enumerates internet- or intranet-reachable WebLogic instances on tcp/7001, 7002, 80, 443, and non-standard ports fronted by proxies. WebLogic returns identifiable banners, X-Powered-By, /console/login/LoginForm.jsp, and default error pages. Tooling: Shodan (product:"Oracle WebLogic"), Censys, FOFA, weblogicScanner, nuclei weblogic templates.
Conditions required:
  • Network reachability to WebLogic HTTP listener
  • Target on 12.2.1.4 / 14.1.1 / 14.1.2 / 15.1.1
Where this breaks in practice:
  • Mature shops front WebLogic with a WAF or reverse proxy that strips admin paths
  • Many prod WebLogic clusters are internal-only behind LB VIPs
Detection/coverage: Shodan/Censys enumerate the population well; internal Tenable/Qualys/Rapid7 plugins for the July 2026 CPU shipped within days of the advisory.
STEP 02

Send crafted HTTP request to vulnerable endpoint

Based on CWE-306 + AV:N/AC:L/PR:N and WebLogic's history, exploitation is a single unauthenticated HTTP POST to a handler that fails to enforce auth and deserializes / dispatches attacker-controlled input. Analogous prior exploits (CVE-2020-14882 admin console auth bypass, CVE-2023-21839 IIOP) were weaponized as curl one-liners within days of PoC drop. Expect a public PoC from Y4er, potatos1ng, or the VulhubOSS crew within 2–4 weeks.
Conditions required:
  • Unauthenticated HTTP reach to the vulnerable handler
  • Handler exposed by default (not disabled)
Where this breaks in practice:
  • Some deployments disable specific handlers (/wls-wsat, /_async) after prior CPUs
  • WAF rules for prior WebLogic CVEs may catch naive payloads
Detection/coverage: Suricata/Snort ET rules typically appear within a week of PoC; WAF vendors (F5 ASM, Akamai, Cloudflare) usually ship generic WebLogic virtual patches quickly.
STEP 03

Achieve RCE as WebLogic service account

Payload executes in the WebLogic JVM under the account running the domain — commonly oracle on Linux or a dedicated service account on Windows. Attacker deploys a JSP webshell (AntSword, Behinder/冰蝎, Godzilla/哥斯拉) into a served context, or spawns a Cobalt Strike / Sliver beacon.
Conditions required:
  • Successful exploit from step 2
  • WebLogic process has write access to a served directory or stage/ path
Where this breaks in practice:
  • EDR on the app tier (CrowdStrike, SentinelOne, Defender for Endpoint) flags JSP-drop and java → cmd/sh → whoami chains reliably
  • Egress filtering blocks beacon C2 on well-instrumented networks
Detection/coverage: EDR JSP-drop detections are mature; behavioral parent-child (java → shell) alerting is a default rule in most platforms.
STEP 04

Credential and pivot harvest from the domain

Attacker loots WebLogic SerializedSystemIni.dat + config.xml to decrypt datasource passwords with WebLogicPasswordDecryptor, pulls JDBC creds to Oracle/MSSQL backends, and lifts saved LDAP bind credentials. On Windows, mimikatz/nanodump against the service account or Kerberoast if the account is a domain user.
Conditions required:
  • Local read on security/SerializedSystemIni.dat and config/config.xml
  • Service account has meaningful privileges
Where this breaks in practice:
  • Least-privilege service accounts limit lateral value
  • Vaulted secrets (CyberArk, Vault agent injection) mean config.xml is bereft of usable creds
Detection/coverage: Access to SerializedSystemIni.dat is a high-fidelity EDR/File-Access-Monitoring signal; CyberArk PSMP session recording catches privileged reuse.
STEP 05

Lateral movement to data tier or Oracle Identity plane

Harvested DB creds are used against downstream Oracle DBs (mass PII / regulated data egress) or against Oracle Identity Manager / Access Manager where WebLogic often *is* the identity plane. Chained impact on OIM/OAM installations produces tenant-wide credential theft and SSO forgery.
Conditions required:
  • Reachable data tier from WebLogic subnet
  • OIM/OAM/SOA Suite co-tenanted on same domain
Where this breaks in practice:
  • Network segmentation from app tier to data tier
  • Separate WebLogic domains for OIM vs. LOB apps
Detection/coverage: Database activity monitoring (Imperva, Guardium) and identity anomaly detection (Okta Threat Insights, Azure AD Identity Protection for federated flows).
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo confirmed exploitation as of 2026-07-24 (3 days post-disclosure). CyCognito and SOCRadar have flagged it in the emerging-threat bucket; no KEV listing yet.
Proof-of-conceptNone public as of 2026-07-24. Expect drop from Y4er, potatos1ng, threedr3am, or VulhubOSS within 2–4 weeks based on prior WebLogic CPU pattern (CVE-2023-21839 had public PoC in ~10 days).
EPSS0.00393 (~0.4%) — low today because scoring is regression-based on public exploit signals; expect a 10–50× jump within a month if PoC lands.
KEV statusNot listed as of 2026-07-24. WebLogic RCEs are frequent KEV entries — historical time-to-KEV is 30–90 days from CPU.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — *network, low complexity, no auth, no UI, full CIA*. Matches CWE-306 (missing authentication).
Affected versionsWebLogic 12.2.1.4.0, 14.1.1.0.0, 14.1.2.0.0, 15.1.1.0.0. Older 10.3.6 / 12.1.3 are out of Premier Support — assume vulnerable, no patch coming.
Fixed versionOracle July 2026 Critical Patch Update cumulative bundle. Patches are per-version PSUs; no standalone hotfix.
Exposure dataShodan typically shows ~14–18k internet-facing WebLogic instances; Censys ~20k. HTTP listener (7001/7002/443) is the modal exposure.
Disclosed2026-07-21 in Oracle's quarterly CPU.
ReporterNot individually credited in the CPU summary; Oracle's CPU acknowledgements page will list the researcher when it updates.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.6/10)

Unauthenticated network-reachable RCE (CWE-306) in a middleware product with a ~15k-instance internet-exposed population and a decade-long track record of same-class bugs being weaponized within weeks. Role multiplier is decisive: WebLogic canonically hosts Oracle Identity Manager, SOA Suite, and Fusion Apps — compromise of one instance frequently pivots to identity-plane or regulated-data-tier takeover.

HIGH Severity bucket (CRITICAL)
HIGH Affected version enumeration
MEDIUM Time-to-exploit estimate (2–4 weeks)
LOW Specific vulnerable endpoint / handler (Oracle does not disclose)

Why this verdict

  • Pre-auth network RCE stands on its own merits — no user interaction, no credentials, HTTP transport. Every friction adjustment starts from a floor of HIGH, not MEDIUM.
  • Role multiplier: WebLogic is a canonical high-value-role component. It underpins Oracle Identity Manager, Access Manager, SOA Suite, and Fusion Middleware applications; a compromise ends in identity-plane or regulated-data takeover in a majority of enterprise deployments. This alone floors the verdict at CRITICAL.
  • Historical base rate is damning. Every prior 9.8-class WebLogic Core CVE (2017-10271, 2019-2725, 2020-14882, 2023-21839) reached public PoC within weeks and KEV within months. There is no reason to believe this one is different.
  • Installed base is large and durably exposed. ~15–20k internet-facing instances per Shodan/Censys; internal exposure is an order of magnitude higher. Even a 5% patch lag leaves a target-rich environment.
  • Friction is thin. WAF virtual-patching helps *specific* payloads once PoC exists but does not remove pre-auth reach; the AC:L designation means no exotic prerequisites.

Why not higher?

Score is capped at 9.8 by CVSS 3.1 for this vector; my 9.6 sits fractionally below Oracle's 9.8 to reflect that (a) no public PoC exists yet as of 2026-07-24, and (b) HTTP listener is more commonly WAF-fronted than the T3 sibling CVEs. This is a rounding delta, not a bucket change.

Why not lower?

Downgrading to HIGH would require either a credible authentication prerequisite (there is none — CWE-306) or a narrow affected-version slice (four major branches are hit). Neither exists. The 'internet-facing WebLogic is rare in mature shops' argument does not survive contact with Shodan telemetry, and the internal blast radius is worse than the external one when OIM/OAM co-tenants exist.

05 · Compensating Control

What to do — in priority order.

  1. Block WebLogic HTTP listener at the perimeter today — For any WebLogic instance that does not need direct internet reach, block tcp/7001/7002 and any non-standard WebLogic HTTP ports at the edge firewall / cloud SG. Deploy within 3 days per the noisgate mitigation SLA for CRITICAL. This does not fix internal exposure but removes the highest-risk population from opportunistic scanners.
  2. Restrict /console, /wls-wsat, /_async, /em, /soa-infra at reverse proxy / WAF — Even if you cannot pull the whole listener offline, most exploited WebLogic endpoints live in a small set of admin/service paths. Deny these paths at F5 / Nginx / Apache / Cloudflare in front of WebLogic within 72 hours. Combine with source-IP allowlisting to admin bastions.
  3. Enable vendor WAF virtual patches for July 2026 WebLogic CPU — F5 ASM, Akamai Kona, Cloudflare Managed Rules, Imperva, and AWS WAF Managed Rules ship WebLogic virtual-patch signatures within 3–7 days of a CPU. Turn them on in *blocking* mode, not detect-only, within the 3-day mitigation window.
  4. Apply Oracle July 2026 CPU bundle to all four affected branches — The real fix. Roll through non-prod → prod using your standard change window; target full remediation within 90 days per the noisgate remediation SLA for CRITICAL. Escalate immediately to *within hours* if a public PoC drops or CISA adds this to KEV.
  5. Hunt for prior compromise now, not after PoC drops — Look for JSP files in servers/*/tmp/_WL_user/, unexpected .war deployments, SerializedSystemIni.dat reads by non-service users, java.exe / java spawning cmd.exe / /bin/sh. Retention ≥ 60 days ideally; assume some subset of instances was hit by researchers or early opportunists.
What doesn't work
  • Changing default WebLogic admin password — this is a *missing-auth* bug (CWE-306), not weak credentials. Rotation does nothing.
  • Disabling the T3 protocol — a common WebLogic hardening step, but this CVE is over HTTP, not T3. Sibling CVEs (60198/60202/60204) are T3/IIOP; disable-T3 helps those, not this one.
  • Network IDS in detect-only mode — telling you *after* the fact that a pre-auth RCE landed is not a control, it is a post-mortem.
  • Relying on 'we're behind a load balancer' — LBs terminate TLS and forward HTTP; the vulnerable handler still gets the request.
06 · Verification

Crowdsourced verification payload.

Run on a Linux auditor workstation or jump host with read access to the WebLogic install directory (typically the oracle or WebLogic service account). Invoke as ./check_cve_2026_60199.sh /u01/oracle/middleware where the argument is the WebLogic MW_HOME. Requires read access to registry.xml and OPatch. Exits 2 = VULNERABLE, 0 = PATCHED, 1 = UNKNOWN.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_60199.sh — WebLogic July 2026 CPU (CVE-2026-60199) verifier
# Usage: ./check_cve_2026_60199.sh <MW_HOME>
# Exit: 0 PATCHED | 1 UNKNOWN | 2 VULNERABLE
set -u
MW_HOME="${1:-}"
if [[ -z "$MW_HOME" || ! -d "$MW_HOME" ]]; then
  echo "UNKNOWN: pass a valid MW_HOME as arg 1" >&2; exit 1
fi

REG="$MW_HOME/registry.xml"
if [[ ! -r "$REG" ]]; then
  echo "UNKNOWN: cannot read $REG" >&2; exit 1
fi

# Extract WebLogic component version from registry.xml
WLS_VER=$(grep -Eo 'name="WebLogic Server"[^/]*version="[0-9.]+"' "$REG" \
           | grep -Eo 'version="[0-9.]+"' | head -1 | cut -d'"' -f2)
if [[ -z "$WLS_VER" ]]; then
  echo "UNKNOWN: could not parse WebLogic version from $REG" >&2; exit 1
fi
echo "Detected WebLogic version: $WLS_VER"

# Vulnerable branches (unpatched)
case "$WLS_VER" in
  12.2.1.4.0|14.1.1.0.0|14.1.2.0.0|15.1.1.0.0) BRANCH_VULN=1 ;;
  *) echo "PATCHED: $WLS_VER not in affected branch list"; exit 0 ;;
esac

# Confirm via OPatch that the July 2026 CPU bundle is applied.
# Oracle assigns per-branch patch IDs; check for CPUJUL2026 marker in lsinventory.
OPATCH="$MW_HOME/OPatch/opatch"
if [[ ! -x "$OPATCH" ]]; then
  echo "UNKNOWN: OPatch not found or not executable at $OPATCH" >&2; exit 1
fi

INV=$("$OPATCH" lsinventory 2>/dev/null)
if [[ -z "$INV" ]]; then
  echo "UNKNOWN: opatch lsinventory returned empty" >&2; exit 1
fi

if echo "$INV" | grep -Eiq 'CPUJul2026|JUL2026|Patch  ?37[0-9]{6}.*WLS'; then
  echo "PATCHED: July 2026 CPU marker present in OPatch inventory"
  exit 0
fi

echo "VULNERABLE: WebLogic $WLS_VER without July 2026 CPU marker in inventory"
echo "            Apply Oracle CPUJul2026 for your branch immediately."
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
This is a real 9.8 — do not let the low EPSS or the 'no PoC yet' status lull anyone. Monday morning: (1) inventory every WebLogic instance running 12.2.1.4 / 14.1.1 / 14.1.2 / 15.1.1, external AND internal; (2) firewall off the HTTP listener from any network that doesn't need it, and turn on WAF virtual patches in *block* mode — the noisgate mitigation SLA for CRITICAL is ≤ 3 days; (3) schedule the Oracle July 2026 CPU bundle rollout to hit full production within ≤ 90 days per the noisgate remediation SLA. If a public PoC drops or CISA adds this to KEV, both SLAs collapse to *within hours* — pre-stage the change ticket now so you're not writing it under pressure. Kick off a compromise-assessment hunt on WebLogic hosts in parallel; assume researchers and early opportunists have already probed the internet-facing population.

Sources

  1. Oracle Critical Patch Update Advisory — July 2026
  2. CyCognito — Emerging Threat: Oracle WebLogic Multiple Critical RCEs (July 2026 CPU)
  3. secnews.gr — Oracle WebLogic CPU July 2026: 5 critical RCEs
  4. SOCRadar — Oracle July 2026 CPU: 1,449 Patches, 10 Score Max
  5. Tenable — Oracle July 2026 Critical Patch Update Addresses 1235 CVEs
  6. Threat-Modeling.com — Oracle July 2026 CPU: 5 Critical and 12+ High Severity
  7. byteiota — Oracle CPU July 2026: Ten CVSS 10.0 Flaws
  8. CISA Known Exploited Vulnerabilities Catalog
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.