← Back to Feed CACHED · 2026-06-25 03:09:53 · CACHE_KEY tenable:55786
tenable:55786 · CWE-1104 · Disclosed 2011-06-15

Oracle Database 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 sticky note that says 'this server has stopped receiving security fixes'

Tenable plugin 55786 is a *generic EOL/unsupported-version detector* for Oracle Database. It does not identify a specific CVE, exploit, or memory corruption bug. It fires whenever Nessus identifies an Oracle RDBMS instance whose major release has fallen off Oracle's Premier or Extended Support — historically 8i, 9i, 10g, 11g (all releases), 12.1, 18c, and 19c once it exits Extended Support (currently April 2027 for ES; 19c is the long-term release everyone should be migrating *to*, not away from). Affected installs receive zero Critical Patch Updates (CPUs), meaning every quarterly Oracle CPU since the support cutoff is unpatched on the host.

Tenable's blanket CRITICAL / CVSS 10.0 label is a *policy score*, not a vulnerability score. It is technically defensible (an unsupported DB engine eventually accumulates dozens of unpatched RCE / auth-bypass / privilege-escalation CVEs) but it overstates the *immediate* risk of any single instance. A 19c box that just hit EOL last quarter is not equivalent to an exposed 10g instance that's missed 14 years of CPUs. We downgrade to HIGH because the finding is real and persistent, but the score should reflect *role and exposure*, not a flat 10.0.

"Not a CVE — it's an EOL flag. Real risk depends on what's on the box, but unpatched Oracle on the network is a fleet-level liability."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Discover unsupported Oracle listener

Attacker enumerates TCP/1521 (or custom listener port) on the internal network using nmap with the oracle-tns-version NSE script, or odat (Oracle Database Attacking Tool) tnscmd module. Banner grab returns version string e.g. 11.2.0.4.0, which is past EOL.
Conditions required:
  • Network reachability to the DB listener
  • Listener not firewalled to app-tier only
Where this breaks in practice:
  • Most enterprises segment DB tier off user VLANs
  • Listener banner can be suppressed via INBOUND_CONNECT_TIMEOUT_LISTENER / VALID_NODE_CHECKING
Detection/coverage: Nessus plugin 55786 fires authenticated or unauthenticated; odat scans are noisy in IDS
STEP 02

Pick a known unpatched CVE for that branch

Attacker references Oracle CPU history. For 11.2.0.4, public exploits exist for CVE-2012-1675 (TNS Poison), CVE-2018-3110 (Java VM RCE), and numerous JDBC / XML DB bugs. Tool: Metasploit auxiliary/admin/oracle/tnspoison_checker and oracle_login modules.
Conditions required:
  • Knowledge of the exact patch level (sub-version)
  • Listener accepts service registration or auth attempts
Where this breaks in practice:
  • Many sites apply *some* CPUs even after EOL via Oracle Sustaining Support contracts
  • Default SEC_CASE_SENSITIVE_LOGON and account lockout policies break brute force
Detection/coverage: Oracle audit trail logs failed logons; Imperva/DAM products alert on TNS Poison attempts
STEP 03

Authenticate or exploit to gain DB session

If credentials are weak/default, odat passwordguesser brute-forces SYS/SYSTEM/DBSNMP. If a pre-auth RCE exists for the version (rare on 11g+, common on 9i/10g), launch directly. End state: SQL session as DBA or SYS.
Conditions required:
  • Valid creds OR working pre-auth exploit for that exact version
Where this breaks in practice:
  • Pre-auth RCEs against 11g+ are rare and well-patched even in 'unsupported' deployments
  • Default accounts disabled in any post-2010 install
Detection/coverage: Database Activity Monitoring (DAM) tools — Imperva, IBM Guardium — flag suspicious SYS logins
STEP 04

Escalate to OS via DBA_DIRECTORIES / Java

From a DBA session, attacker uses odat externaltable, odat java, or odat dbmsscheduler to write files to disk and execute OS commands as the oracle user. On Windows installs, this often lands as LocalSystem.
Conditions required:
  • DBA role
  • Java VM enabled (default pre-12c)
  • External procedure listener configured
Where this breaks in practice:
  • 12c+ tightens dba_directories ACLs
  • Java VM frequently uninstalled in hardened builds
Detection/coverage: OS-level EDR (CrowdStrike, SentinelOne) flags oracle.exe spawning cmd.exe / powershell.exe
STEP 05

Pivot — exfil data, dump creds, move laterally

With OS-level access on a DB server, attacker dumps SPFILE, password files, wallet files, and the actual data tablespaces. On Windows, mimikatz harvests cached domain credentials of any DBA who logged in interactively. Service account often has rights to file shares, backup targets, and other DB hosts.
Conditions required:
  • OS shell as oracle / LocalSystem
Where this breaks in practice:
  • Modern EDR blocks mimikatz
  • TDE-encrypted tablespaces require wallet access
Detection/coverage: Sysmon process tree, EDR memory scans, anomalous outbound from DB VLAN
03 · Intelligence Metadata

The supporting signals.

Finding typeGeneric EOL detection — not a CVE. Plugin family: *Databases*
In-the-wild statusNo single CVE; ransomware crews (LockBit, BlackCat) routinely target unpatched Oracle as a high-value target once inside
PoC availabilityodat (github.com/quentinhardy/odat), Metasploit oracle_* modules, DBSAT (Oracle's own audit tool will list missing CPUs)
EPSSN/A — applies to a plugin, not a CVE. Component CVEs (e.g. CVE-2018-3110) carry EPSS 0.5–5%
KEV statusNot KEV-listed (it's a detection, not a CVE). Some component CVEs *are* KEV — e.g. CVE-2012-1675 indirectly
CVSSTenable assigns CVSSv2 10.0 as a policy score for unsupported software — not a per-vuln rating
Affected versionsOracle DB 8i, 9i, 10g, 11.1, 11.2, 12.1, 18c; 19c after April 2027; 21c after April 2025 (innovation release); pre-23ai
Fixed versionsMigrate to 19c (LTS) with current CPU, or 23ai (current Long Term Release)
Exposure dataShodan shows ~140k internet-exposed TNS listeners; majority are *internal-only* in real enterprises. Internet exposure is the high-risk subset
Disclosure / originPlugin published 2011-06-15, continuously updated by Tenable as Oracle support windows shift
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to HIGH (8.0/10)

Downgraded from Tenable's blanket CRITICAL/10.0 because this is a *policy score for unsupported software*, not a specific exploitable CVE — the decisive factor is that it is a configuration/lifecycle finding rather than a weaponized bug. Floor is held at HIGH because the affected component is a production database engine carrying regulated data, which is a canonical high-value-role asset whose compromise is fleet-level and data-egress-scale.

HIGH Plugin behavior and Oracle support lifecycle
MEDIUM Per-host exploitability without knowing the exact sub-version and patch level
HIGH Role multiplier — DB tier is always sensitive

Why this verdict

  • Policy score, not vuln score: Tenable's CVSS 10.0 is a flat label for any EOL software, regardless of whether a single CPU has been missed or fifteen years' worth. The actual exploit surface varies by 4+ orders of magnitude across the affected population.
  • Friction — network position: Listeners on TCP/1521 are almost always behind segmentation; the attacker is *already inside* the data tier VLAN before this matters. That's a post-initial-access scenario.
  • Friction — credential or exploit required: Pre-auth RCE against 11g+ is rare. The realistic chain requires either weak DBA creds or a known component CVE that the org happened to skip — not a single click-and-pwn.
  • Role multiplier: Production database engine → chain ends in mass data egress, regulatory breach, and ransomware staging ground. Per the noisgate role catalog, prod DBs are floored at HIGH. If the box hosts PCI/PHI/PII, treat as CRITICAL.
  • Role multiplier: Dev/test/sandbox DB → chain ends at one host with low-value data; without lateral pivot this is MEDIUM. But dev DBs frequently hold *production data copies* — verify before downgrading.

Why not higher?

Not CRITICAL because there is no specific weaponized exploit attached to this finding, no KEV listing, and no evidence of mass exploitation tied to the plugin itself. The attacker needs a working CVE for the exact sub-version AND network reach AND (usually) credentials — three compounding gates.

Why not lower?

Not MEDIUM because the affected component is a production database engine, which sits in the noisgate high-value-role catalog. Any successful chain ends in regulated-data exposure or a ransomware staging point. Treating EOL Oracle as MEDIUM 'config hygiene' is how breaches happen.

05 · Compensating Control

What to do — in priority order.

  1. Inventory and classify every flagged instance — Within 30 days per noisgate HIGH SLA, build a spreadsheet: hostname, Oracle exact version (SELECT * FROM v$version), last CPU applied, network exposure (internal/DMZ/internet), data classification (prod/dev, PCI/PHI). You cannot prioritize what you have not enumerated.
  2. Confirm Sustaining Support / Market Driven Support contract — Oracle Sustaining Support continues to ship CPUs to paying customers post-EOL. Many 'unsupported' Tenable findings are actually patched via MDS or ULA. Apply the latest available CPU for that branch within 30 days.
  3. Network-isolate the listener — Restrict TCP/1521 (or custom port) at the firewall/microsegmentation layer to ONLY the application-tier IPs that legitimately connect. Combine with VALID_NODE_CHECKING_REGISTRATION=ON in listener.ora. Deploy within 30 days.
  4. Disable Java VM and unused PL/SQL packagesUTL_FILE, UTL_HTTP, UTL_TCP, DBMS_LDAP, DBMS_SCHEDULER and the Java VM are common escalation primitives. Revoke EXECUTE from PUBLIC per Oracle's hardening guide. Apply within 30 days.
  5. Force DBA account hygiene — Rotate SYS, SYSTEM, DBSNMP, SYSMAN, and any default accounts. Enforce SEC_CASE_SENSITIVE_LOGON=TRUE and account lockout. Audit with DBSAT (Oracle's free Database Security Assessment Tool).
  6. Plan migration to 19c or 23ai — The 180-day noisgate remediation deadline for HIGH should drive the migration project plan. 19c is the current LTS; 23ai is the next. Treat this as a budget line, not a sprint task.
What doesn't work
  • WAF / TLS inspection — Oracle TNS is a binary protocol over a non-HTTP port. WAFs don't see it.
  • Generic OS patching — patching Linux/Windows underneath does not patch Oracle CPUs. They are separate channels.
  • Database TDE alone — Transparent Data Encryption protects data at rest from disk theft, not from a DBA-level SQL session.
  • Network IDS signatures — most Oracle exploitation looks like normal SQL traffic post-auth; signatures catch only TNS Poison and obvious brute force.
06 · Verification

Crowdsourced verification payload.

Run on the target Oracle host (or any host with sqlplus client + connectivity) as a user with SELECT_CATALOG_ROLE or higher. Invoke as: ./check_oracle_eol.sh user/pass@//dbhost:1521/SERVICE. Returns VULNERABLE if the running version is past Oracle Premier+Extended Support.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate verification: Oracle Database unsupported version check (tenable:55786)
# Usage: ./check_oracle_eol.sh <user>/<pass>@//<host>:<port>/<service>
# Requires: sqlplus in PATH, SELECT on v$version

set -u
CONN="${1:-}"
if [[ -z "$CONN" ]]; then
  echo "UNKNOWN: usage: $0 user/pass@//host:port/service" >&2
  exit 2
fi

command -v sqlplus >/dev/null 2>&1 || { echo "UNKNOWN: sqlplus not found" >&2; exit 2; }

VER=$(sqlplus -s "$CONN" <<'SQL' 2>/dev/null | tr -d ' \r'
SET HEADING OFF FEEDBACK OFF PAGESIZE 0
SELECT version FROM v$instance;
EXIT;
SQL
)

if [[ -z "$VER" ]]; then
  echo "UNKNOWN: could not query v\$instance — check creds/connectivity"
  exit 2
fi

echo "Detected Oracle version: $VER"

# EOL matrix as of 2026-06 (Premier + Extended Support both expired)
# 8.x, 9.x, 10.x, 11.x, 12.1.x, 18.x = EOL
# 12.2.x = EOL Mar 2022
# 19.x = Extended Support until Apr 2027 → SUPPORTED
# 21c = innovation release, EOL Apr 2025 → EOL
# 23ai = current LTS → SUPPORTED

MAJOR=$(echo "$VER" | cut -d. -f1)
MINOR=$(echo "$VER" | cut -d. -f2)

case "$MAJOR" in
  8|9|10|11|18|21)
    echo "VULNERABLE: Oracle $VER is past end of support — apply noisgate HIGH SLA"
    exit 1 ;;
  12)
    echo "VULNERABLE: Oracle 12.$MINOR is EOL (12.1 Jul 2022, 12.2 Mar 2022)"
    exit 1 ;;
  19)
    echo "PATCHED: Oracle 19c is in Extended Support until Apr 2027 — verify latest CPU applied"
    exit 0 ;;
  23)
    echo "PATCHED: Oracle 23ai is current LTS — verify latest CPU applied"
    exit 0 ;;
  *)
    echo "UNKNOWN: unrecognized major version $MAJOR"
    exit 2 ;;
esac
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull the full Tenable 55786 finding list, join it against your CMDB to tag each host with data classification and network exposure, and split into three buckets. Bucket 1 — internet-exposed or prod-data EOL Oracle: treat as the *noisgate mitigation SLA* immediate row (network-isolate the listener and apply most recent CPU available via Sustaining Support within hours/days, not 30); migration project kicked off within the noisgate remediation SLA of 180 days for HIGH. Bucket 2 — internal prod DBs on EOL versions: mitigation within 30 days (segmentation, package hardening, DBA credential rotation), remediation (migrate to 19c/23ai) within 180 days. Bucket 3 — dev/test/sandbox with no prod data: drop to MEDIUM, no mitigation SLA, remediate within 365 days. Do *not* accept the flat CVSS 10.0 score across your whole fleet — it will drown your patch program in false urgency and hide the genuinely scary hosts.

Sources

  1. Tenable plugin 55786
  2. Oracle Lifetime Support Policy (Database)
  3. Oracle Critical Patch Update archive
  4. odat — Oracle Database Attacking Tool
  5. Oracle DBSAT — Database Security Assessment Tool
  6. Metasploit Oracle modules
  7. Oracle Database Security Guide — Listener hardening
  8. CISA KEV 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.