CVE-2026-46929
Executive Summary
CVE-2026-46929 is a critical vulnerability in Oracle Cost Management, a component of Oracle E-Business Suite (EBS). The flaw allows a low-privileged attacker with network access to fully compromise the Oracle Cost Management application, leading to a complete takeover of confidentiality, integrity, and availability. The vulnerability is easily exploitable via HTTP and does not require user interaction. With a CVSS score of 8.8, this poses a severe risk to organizations running affected versions of Oracle EBS (12.2.3 through 12.2.15). No public proof-of-concept (PoC) or exploit code has been released, and no official patch is currently available. The EPSS score of 0.0% suggests low exploitation activity in the wild, but the high impact warrants immediate attention.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to open-source package ecosystems (NPM, PyPI, Go, Ruby). It affects Oracle E-Business Suite, a proprietary enterprise resource planning (ERP) system. Organizations should assess their internal supply chain for dependencies on Oracle EBS and ensure that affected instances are isolated or mitigated.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Base Score: 8.8 (High)
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): Low (L) – Attacker needs valid low-privilege credentials.
- User Interaction (UI): None (N) – No user action needed.
- Scope (S): Unchanged (U) – Impact confined to the vulnerable component.
- Confidentiality (C): High (H) – Full data disclosure.
- Integrity (I): High (H) – Full data modification.
- Availability (A): High (H) – Full service disruption.
Threat Level: Critical. The combination of low attack complexity, low privileges required, and high impact makes this a prime target for ransomware groups and APT actors. The lack of a patch increases the urgency for compensating controls.
Deep Dive & Mechanics
The vulnerability resides in the Cost Planning component of Oracle Cost Management. While the exact technical details are not publicly disclosed, the CVSS vector indicates that the flaw is likely an authentication bypass, insecure deserialization, or a SQL injection that allows privilege escalation. The low privileges required suggest that an attacker with a standard user account (e.g., a procurement clerk) can exploit the vulnerability to gain administrative control over the Cost Management module.
Potential Attack Flow:
- Reconnaissance: The attacker identifies Oracle EBS instances via Shodan or internal scanning.
- Authentication: The attacker obtains low-privilege credentials through phishing, credential stuffing, or previous breaches.
- Exploitation: The attacker sends a crafted HTTP request to a vulnerable endpoint in the Cost Planning module (e.g.,
/OA_HTML/...). - Privilege Escalation: The request triggers a flaw that elevates the attacker's privileges to
FND_RESP(System Administrator) orFND_USER(Super User). - Takeover: The attacker can now execute arbitrary SQL, deploy web shells, exfiltrate data, or disrupt operations.
Vulnerable vs. Patched Code
Since no patch is available, a direct code comparison is not possible. However, based on similar Oracle EBS vulnerabilities (e.g., CVE-2022-21587), the flaw likely involves improper input validation in a Java servlet or PL/SQL procedure.
Hypothetical Vulnerable Code (Java):
// Vulnerable: Direct concatenation of user input into SQL query
String query = "SELECT * FROM COST_PLANS WHERE PLAN_ID = " + request.getParameter("planId");
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
Hypothetical Patched Code:
// Patched: Use of prepared statements to prevent SQL injection
String query = "SELECT * FROM COST_PLANS WHERE PLAN_ID = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
pstmt.setInt(1, Integer.parseInt(request.getParameter("planId")));
ResultSet rs = pstmt.executeQuery();
Note: This is speculative. The actual fix would require Oracle to release a security patch.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Oracle EBS 12.2.3-12.2.15 instance (e.g., using Docker or a VM).
- Low-privilege credentials (e.g.,
user/passwordwithFND_RESP= "Cost Planner"). - Network access to the EBS web interface (port 8000 or 443).
Exploitation Steps:
- Identify Vulnerable Endpoint:
# Use Shodan or Nmap to find Oracle EBS instances nmap -p 8000 --script http-title <target> - Authenticate:
curl -c cookies.txt -X POST "http://<target>:8000/OA_HTML/AppsLogin" \ -d "username=user&password=password&lang=US" - Craft Exploit Payload:
Since no public exploit exists, a custom payload would target the Cost Planning module. Example (hypothetical SQL injection):
POST /OA_HTML/COST_PLANNING.jsp HTTP/1.1 Host: <target>:8000 Cookie: <session_cookie> Content-Type: application/x-www-form-urlencoded planId=1 UNION SELECT username,password FROM FND_USER-- - Escalate Privileges: Use the extracted credentials to log in as a system administrator.
Note: This is a conceptual example. Actual exploitation requires reverse engineering the Oracle EBS code.
Blue Team (Defensive)
Detection & Response:
- Monitor HTTP Logs: Look for unusual SQL keywords in POST parameters (e.g.,
UNION,SELECT,--). - Honeypot: Deploy a fake Oracle EBS instance to capture attacker behavior.
- Network Segmentation: Isolate Oracle EBS from the internet and restrict access to trusted IPs.
- Web Application Firewall (WAF): Deploy rules to block SQL injection patterns.
- User Activity Auditing: Enable auditing for all
FND_RESPchanges and privilege escalations.
Indicators of Compromise (IOCs)
| Type | Indicator | Description |
|---|---|---|
| Network | POST /OA_HTML/COST_PLANNING.jsp with SQL keywords |
Exploitation attempt |
| Network | Unusual HTTP 200 responses to /OA_HTML/AppsLogin |
Brute-force or credential stuffing |
| File | *.jsp files in $ORACLE_HOME/forms/ |
Web shell deployment |
| Process | java process with high CPU or memory |
Potential exploit execution |
| Log | FND_USER table modifications in audit logs |
Privilege escalation |
YARA Rule:
rule oracle_ebs_webshell {
meta:
description = "Detects potential web shells in Oracle EBS directories"
author = "Valters IT"
date = "2025-04-10"
strings:
$jsp = "Runtime.getRuntime().exec" nocase
$cmd = "cmd.exe" nocase
$shell = "ProcessBuilder" nocase
condition:
any of them
}
Sigma Rule:
title: Oracle EBS SQL Injection Attempt
id: 8f7b3c2a-1d5e-4f9a-8c6b-7e2a3d4f5b6c
status: experimental
description: Detects SQL injection patterns in Oracle EBS HTTP requests
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/OA_HTML/COST_PLANNING.jsp'
cs-uri-query|contains:
- 'UNION'
- 'SELECT'
- '--'
- 'OR 1=1'
condition: selection
falsepositives:
- Legitimate use of SQL keywords in form fields (rare)
level: high
Suricata Rule:
alert http any any -> any any (msg:"Oracle EBS SQL Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/OA_HTML/COST_PLANNING.jsp"; http_uri; pcre:"/(UNION|SELECT|--|OR\s+1=1)/i"; sid:1000001; rev:1;)
Detection Engineering
YARA Rule
rule oracle_ebs_exploit_attempt {
meta:
description = "Detects exploit payloads targeting Oracle Cost Management"
author = "Valters IT"
date = "2025-04-10"
strings:
$sqli1 = "UNION SELECT" nocase
$sqli2 = "OR 1=1" nocase
$sqli3 = "admin'--" nocase
condition:
any of them
}
Sigma Rule
title: Oracle EBS Privilege Escalation
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects privilege escalation in Oracle EBS via FND_USER changes
logsource:
category: application
product: oracle_ebs
detection:
selection:
event_id: 'FND_USER.UPDATE'
new_value|contains: 'SYSTEM_ADMIN'
condition: selection
falsepositives:
- Legitimate admin user creation
level: high
Suricata Rule
alert http any any -> any any (msg:"Oracle EBS Cost Planning Exploit"; flow:to_server,established; content:"POST"; http_method; content:"/OA_HTML/COST_PLANNING.jsp"; http_uri; pcre:"/(UNION|SELECT|--|OR\s+1=1)/i"; sid:1000002; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Apply Workarounds: If possible, disable the Cost Planning module or restrict access to it via firewall rules.
- Upgrade: Monitor Oracle's security alerts for a patch. Upgrade to version 12.2.16 or later when available.
- Access Control: Implement strict role-based access control (RBAC) for Oracle EBS. Remove unnecessary low-privilege accounts.
- Web Application Firewall (WAF): Deploy a WAF (e.g., ModSecurity) with rules to block SQL injection and path traversal.
- Network Segmentation: Place Oracle EBS behind a VPN or bastion host. Do not expose it directly to the internet.
- Logging & Monitoring: Enable detailed logging for all Oracle EBS modules and integrate with a SIEM.
Long-Term Measures:
- Conduct a full security audit of Oracle EBS configurations.
- Implement a vulnerability management program to prioritize patching.
- Train users on phishing awareness to prevent credential theft.
Valters IT