← Back to Feed CACHED · 2026-06-25 03:50:58 · CACHE_KEY tenable:109345
tenable:109345 · CWE-1104 · Disclosed 2018-04-11

Oracle WebLogic Unsupported Version Detection

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

This isn't a vulnerability — it's a confession that you're running software the vendor stopped defending

Tenable plugin 109345 is not a CVE. It is a *lifecycle* finding: the scanner identified an Oracle WebLogic Server instance running a release family that has aged out of Oracle Premier and Extended Support (historically 10.3.x / 11g, 12.1.x, and increasingly 12.2.1.3/12.2.1.4 as their support windows close). Oracle ships WebLogic security fixes only through the quarterly Critical Patch Update (CPU) stream, and only for in-support versions. Once a release leaves that stream, any new WebLogic CVE — and WebLogic has had a *long* list of unauth pre-auth RCEs (CVE-2017-10271, 2019-2725, 2020-2883, 2020-14882, 2023-21839, 2024-20931 to name a few) — will never get a vendor patch on your box.

Tenable's CRITICAL label is *directionally correct but lazy*. The plugin itself has no exploit; it's a sticker. The real risk is the expected value of all future unpatched WebLogic CVEs over the asset's remaining lifetime, which on a product with WebLogic's exploit history is enormous. We rate this HIGH (8.5) rather than CRITICAL because severity depends entirely on network exposure and what the instance hosts — an internet-reachable unsupported WebLogic is effectively a 10.0; an air-gapped lab instance is a 4.

"Unsupported WebLogic isn't a single CVE — it's a permanent open door. Treat any internet-exposed instance as already-compromised."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Discover the unsupported instance

Attacker fingerprints WebLogic via the default /console, /wls-wsat/, /_async/, or /em endpoints, the WebLogic Server HTTP header, or T3/IIOP banners on 7001/7002. Version is leaked through console login pages and error stacks. Tools: Shodan (product:"Oracle WebLogic"), FOFA, Nuclei template weblogic-detect.
Conditions required:
  • Network reachability to HTTP/T3/IIOP listener
  • Default management paths not stripped
Where this breaks in practice:
  • Reverse proxy hiding console paths
  • Non-default ports
  • WAF banner scrubbing
Detection/coverage: Tenable 109345 + plugin 66660 family detect locally; external scanners (Shodan/Censys) catalog publicly.
STEP 02

Select an unpatched RCE from the back catalog

Because the version is past support, *every* WebLogic CPU advisory since end-of-support applies. Attacker picks the easiest weaponized chain — e.g., CVE-2020-14882 auth bypass + RCE via /console/css/%252e%252e%252fconsole.portal, CVE-2023-21839 T3/IIOP JNDI injection (PoC: 4ra1n/CVE-2023-21839), or CVE-2024-20931 patch bypass.
Conditions required:
  • Public PoC matching the deployed version
  • Targeted endpoint reachable
Where this breaks in practice:
  • Custom security filters
  • T3 protocol filter (weblogic.security.net.ConnectionFilterImpl) configured
  • IIOP disabled
Detection/coverage: Most WebLogic RCE chains have Suricata/Snort sigs and Nuclei templates; EDR can catch the spawned cmd.exe/bash from the Java process.
STEP 03

Execute code as the WebLogic process account

Payload lands as a JSP webshell in servers/AdminServer/tmp/_WL_internal/... or as direct command execution via Runtime.exec. Tools: ysoserial, Behinder, Godzilla for managed shells.
Conditions required:
  • WebLogic process can write to deployment temp dirs
  • Outbound network for staging optional
Where this breaks in practice:
  • Read-only filesystem deployments (rare)
  • Strict egress filtering blocking stagers
Detection/coverage: EDR on Java child-process spawning; file-integrity monitoring on WebLogic domain dirs.
STEP 04

Pivot from the appserver tier

WebLogic typically runs with DB credentials in boot.properties, jdbc/*-jdbc.xml, and connection-pool config. Attacker exfils datasource creds, hits the backing Oracle/MSSQL/Postgres, and uses the appserver's privileged network position to reach internal services. From here it's standard post-exploit: AD enum, credential theft, lateral.
Conditions required:
  • Service account has DB or AD-joined privileges
  • Internal network reachability
Where this breaks in practice:
  • Tiered network segmentation
  • Workload identity / IMDSv2-style ephemeral creds
  • Database firewall
Detection/coverage: Splunk/Sentinel rules on anomalous JDBC connections from app tier; DB audit for new query patterns.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusWebLogic is one of the most consistently exploited Java appservers in the wild — multiple CVEs across the back catalog are CISA KEV-listed (2017-10271, 2019-2725, 2020-2883, 2020-14882, 2020-14883, 2023-21839). Mass-exploitation campaigns from cryptominer crews (8220 Gang, Kinsing, Rocke) and APT groups (DarkHotel, APT41) are routine.
PoC availabilityPublic PoCs exist for *every* significant WebLogic RCE — see Y4er/CVE-2023-21839, Al1ex/WeblogicScan, rabbitmask/WeblogicScan, 0nise/CVE-2020-14882. Metasploit modules: exploit/multi/misc/weblogic_deserialize_*.
EPSSN/A for the plugin itself; individual WebLogic RCEs routinely score EPSS 0.94+ (>99th percentile).
KEV statusPlugin is informational; 6+ underlying WebLogic CVEs are KEV-listed (oldest added 2021-11-03).
CVSS framingPlugin has no CVSS. The underlying unpatched RCEs are mostly CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8.
Affected versionsWebLogic 10.3.x (11g) — out of support since Dec 2018; 12.1.x — out since Dec 2022; 12.2.1.3 — Premier ended Dec 2022, Extended ended Dec 2025; 12.2.1.4 approaching end. Only 14.1.1.x / 14.1.2.x remain in active CPU coverage as of 2026.
Fixed versionUpgrade to 14.1.2.0 (current GA) and stay on quarterly CPU. There is no backport path for EOL families.
Exposure dataShodan consistently shows 15,000–25,000 internet-exposed WebLogic instances globally; sampling typically shows the majority on unsupported 10.3/12.1/12.2.1.3 branches.
DisclosurePlugin 109345 published by Tenable on 2018-04-11; expanded continuously as Oracle support windows close.
ResearcherPlugin authored by Tenable Research; lifecycle data sourced from Oracle Lifetime Support Policy documents.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.5/10)

The single decisive factor is role and exposure of the affected component: WebLogic is a canonical application-tier server frequently holding DB creds, AD service accounts, and customer data, and unsupported builds will *never* receive fixes for the steady stream of new RCEs. Vendor severity is correct in spirit but blunt — it does not distinguish an internet-exposed billing portal from an isolated lab box, and our HIGH bucket reflects that the realistic blast radius across an enterprise fleet of 10k hosts is fleet-impacting but exposure-dependent.

HIGH that unsupported WebLogic will never get vendor fixes
HIGH that exploitable RCEs already exist for every EOL branch
MEDIUM on per-host blast radius (depends on deployment role)

Why this verdict

  • Lifecycle, not lottery: Unlike a single CVE, this finding *guarantees* future exploitability — every new WebLogic CPU adds another permanently-unpatched RCE to your asset.
  • Back catalog is loaded: 6+ KEV-listed WebLogic RCEs already work against EOL builds with public PoCs and Metasploit modules.
  • Role multiplier: WebLogic in its canonical role (Java EE app tier fronting Oracle DB, often AD-integrated) means a successful chain ends in datasource credential theft and lateral movement to the data tier — fleet-relevant outcome, hence HIGH floor.
  • Friction adjustment downward: Many WebLogic instances are internal-only behind reverse proxies, which narrows the exploitable population versus a true 10.0 internet-wide bug.
  • No vendor remediation pathway: The only fix is migration to 14.1.2, which is a project, not a patch — increasing the residency time of the risk.

Why not higher?

We hold at HIGH rather than CRITICAL because the plugin itself is a *condition*, not an active exploit chain — actual exploitability depends on network reachability and which specific endpoints (/console, T3, IIOP) are exposed. An internet-facing instance should be elevated to CRITICAL on a per-asset basis.

Why not lower?

MEDIUM would imply this is hygiene. It is not — unsupported WebLogic has an unbroken decade-long history of mass exploitation, the back catalog of unpatched RCEs grows every Oracle CPU, and a single compromised appserver typically leads to DB and AD compromise.

05 · Compensating Control

What to do — in priority order.

  1. Inventory and triage every WebLogic instance by exposure tier — Within the noisgate mitigation SLA of 30 days, classify each instance as Internet-exposed / DMZ / internal / isolated. Internet-exposed instances on EOL versions are de-facto CRITICAL — treat as already-compromised, do IR triage first.
  2. Remove internet exposure immediately — Put unsupported WebLogic behind an authenticating reverse proxy (or VPN-gate it) within 3 days for any externally reachable instance. Block direct access to /console, /em, /wls-wsat/, /_async/, /clusterjsp/ paths at the proxy/WAF.
  3. Restrict T3/T3s/IIOP protocol access — Configure weblogic.security.net.ConnectionFilterImpl to allow T3 only from known management subnets. T3 is the carrier for most deserialization RCEs; closing it breaks a huge fraction of the exploit catalog.
  4. Apply latest *available* Oracle CPU even if EOL — If your support contract still grants Extended Support or Sustaining patches, install them. Within 30 days, also harden via Oracle's deserialization blocklist (weblogic.oif.serialFilter) if your version supports it.
  5. Plan migration to WebLogic 14.1.2 or alternative platform — This is the only true remediation. Target 180-day remediation for HIGH-rated instances; bring forward to 90 days for any internet-exposed ones (treat them as CRITICAL per the SLA table).
  6. Wrap with EDR + JVM child-process alerting — Tune EDR to alarm on java.exe/java spawning cmd.exe, powershell, bash, sh, whoami, nslookup, or writing executable/JSP content into WebLogic tmp dirs. Highest-fidelity tripwire for live exploitation.
What doesn't work
  • Network IDS signatures alone — many WebLogic chains travel over TLS-wrapped T3s/HTTPS and evade plaintext sigs.
  • Disabling specific URLs that match known PoCs — every Oracle CPU adds a new endpoint or bypass; you are playing whack-a-mole against an EOL product.
  • Relying on serialFilter deserialization blocklists on older 10.3.x — feature was added later; many EOL releases lack it entirely.
  • WAF default rulesets — generic OWASP CRS misses most WebLogic-specific deserialization payloads. You need WebLogic-tuned virtual patches.
06 · Verification

Crowdsourced verification payload.

Run on the target Windows host (or adapt for Linux by reading the same files via bash). Invoke as: .\Check-WeblogicEOL.ps1 -DomainHome 'C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain'. Requires read access to the WebLogic install directory — typically run as a local administrator or the WebLogic service account.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Version 5
<#
.SYNOPSIS
  Detects Oracle WebLogic versions that are out of vendor support.
.PARAMETER DomainHome
  Path to a WebLogic domain. If omitted, attempts auto-discovery under C:\Oracle.
.OUTPUTS
  VULNERABLE | PATCHED | UNKNOWN
#>
param(
  [string]$DomainHome = ''
)

$ErrorActionPreference = 'Stop'

# Released-and-supported family floor as of 2026-06-25.
# Anything < 14.1.2.0 is either EOL or rapidly approaching it.
$supportedFloor = [Version]'14.1.2.0'

function Get-WeblogicVersion {
  param([string]$home)
  $candidates = @(
    Join-Path $home 'registry.xml',
    (Join-Path $home '..\..\..\..\inventory\registry.xml'),
    (Join-Path $home '..\..\..\..\OPatch\config\inventory.xml')
  )
  foreach ($f in $candidates) {
    if (Test-Path $f) {
      $txt = Get-Content -Raw $f
      if ($txt -match 'WebLogic Server.*?(\d+\.\d+\.\d+(?:\.\d+)?)') {
        return $Matches[1]
      }
    }
  }
  # Fallback: run weblogic.version via java
  $wljar = Get-ChildItem -Path 'C:\Oracle' -Recurse -Filter 'weblogic.jar' -ErrorAction SilentlyContinue | Select-Object -First 1
  if ($wljar) {
    try {
      $out = & java -cp $wljar.FullName weblogic.version 2>&1
      if ($out -match 'WebLogic Server\s+(\d+\.\d+\.\d+(?:\.\d+)?)') { return $Matches[1] }
    } catch {}
  }
  return $null
}

if (-not $DomainHome) {
  $found = Get-ChildItem 'C:\Oracle' -Recurse -Directory -Filter 'domains' -ErrorAction SilentlyContinue | Select-Object -First 1
  if ($found) { $DomainHome = (Get-ChildItem $found.FullName -Directory | Select-Object -First 1).FullName }
}

if (-not $DomainHome -or -not (Test-Path $DomainHome)) {
  Write-Output 'UNKNOWN: no WebLogic domain located'
  exit 2
}

$ver = Get-WeblogicVersion -home $DomainHome
if (-not $ver) {
  Write-Output 'UNKNOWN: could not determine WebLogic version'
  exit 2
}

try { $v = [Version]$ver } catch { Write-Output "UNKNOWN: unparseable version $ver"; exit 2 }

if ($v -lt $supportedFloor) {
  Write-Output "VULNERABLE: WebLogic $ver is past Oracle support (floor $supportedFloor)"
  exit 1
} else {
  Write-Output "PATCHED: WebLogic $ver is in supported family"
  exit 0
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: run the inventory script against every host tagged as application-tier and produce three buckets — internet-exposed unsupported WebLogic (treat as CRITICAL: per the noisgate mitigation SLA, KEV-equivalent → patch/mitigate within hours; pull behind a VPN or reverse proxy *today*, IR-triage for prior compromise, and start migration on the 90-day noisgate remediation SLA); internal unsupported WebLogic (HIGH: 30-day mitigation SLA — lock down T3/IIOP via ConnectionFilterImpl, block console paths at the load balancer, tune EDR for JVM child-process spawns; 180-day remediation SLA to migrate to 14.1.2 or decommission); isolated lab/dev instances (document and schedule for backlog hygiene). Migration is the only true fix — start the platform-modernization project this quarter, because every Oracle CPU adds another unpatchable RCE to your asset.

Sources

  1. Tenable Plugin 109345
  2. Oracle Lifetime Support Policy — Fusion Middleware
  3. Oracle Critical Patch Updates
  4. CISA KEV Catalog (search 'WebLogic')
  5. CVE-2020-14882 — WebLogic console RCE
  6. CVE-2023-21839 — WebLogic T3/IIOP JNDI
  7. WebLogic ConnectionFilterImpl hardening guide
  8. Unit42 / Kinsing WebLogic exploitation reporting
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.