☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ WEBSITE ] [ VENDOR STATS ]
SOON N/A 🐛 CWE-522
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-14354

CVE-2026-14354
📅 PUBLISHED: 2026-07-29 00:00 UTC 🔄 UPDATED: 2026-09-23 20:42 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.12%
👁️
0.12% probability
2.9× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1078
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: France License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 0.0
A: Availability
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-14354 is an insufficiently protected credentials vulnerability (CWE-522) affecting Schneider Electric products, discovered in an unspecified application component. A local privileged attacker can leverage weak protection mechanisms for stored credentials to bypass authentication and modify credential data, potentially resulting in full compromise of managed devices within industrial control system (ICS) environments. This vulnerability is currently unpatched (patch confidence 0/4) and has a low EPSS score of 0.00117 (1.9th percentile of exploited CVEs), indicating low immediate exploitation likelihood but significant consequence if exploited. No CISA KEV listing exists at the time of writing.

⚡ 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

Technical Analysis

CVE-2026-14354 stems from CWE-522: Insufficiently Protected Credentials, which occurs when an application stores, transmits, or handles authentication credentials without adequate protection mechanisms such as strong encryption, hardware-backed key storage, or proper access controls.

In the context of Schneider Electric product ecosystems, this vulnerability likely manifests in one or more of the following scenarios:

Vulnerability Mechanism

The core flaw resides in how the application stores credentials for managed devices (e.g., PLCs, HMIs, VFDs, power meters, or other field devices). Schneider Electric's management software — whether it is EcoStruxure Power Operations, Modicon Programming Software, or a similar utility — typically maintains a credential store that maps device addresses to authentication tokens. The vulnerability arises when this credential store:

  1. Uses reversible encryption with a static or predictable encryption key (e.g., hardcoded keys, XOR-based obfuscation, or AES with a known IV/key combination).
  2. Stores plaintext credentials in configuration files, registry entries, or SQLite databases without access control restrictions.
  3. Leverages weak password-based key derivation functions (e.g., MD5, SHA1) that are susceptible to offline brute-force or rainbow table attacks.
  4. Fails to apply OS-level access controls (e.g., incorrect file permissions, world-readable configuration files) to credential storage locations.

Attack Surface

The attack surface is local — the attacker requires local privileged access (e.g., a user with administrative rights on the engineering workstation or server hosting the Schneider Electric management software). However, "local" in ICS environments often extends to:

  • Engineering workstations used for PLC programming and device configuration
  • HMI/SCADA servers that aggregate device connections
  • Historical data servers that maintain persistent connections to field devices
  • Virtual machines running Schneider Electric's management suite

The credential store is accessed when the application establishes connections to managed devices. If an attacker can extract credentials from this store, they can:

  • Impersonate legitimate users to connect to devices
  • Modify credentials to lock out legitimate operators or plant backdoors
  • Escalate access from local to industrial network level

Code-Level Consideration

While the exact implementation is undisclosed, CWE-522 vulnerabilities in ICS management software commonly trace to code patterns such as:

# Example vulnerable pattern (conceptual)
def store_device_credentials(device_ip, username, password):
    # Weak obfuscation using XOR with constant key
    obfuscated = ''.join(chr(ord(c) ^ 0x42) for c in password)
    config_file.write(f"{device_ip}:{username}:{obfuscated}")

The recovered credentials may grant access to Modbus/TCP (port 502), OPC UA (port 4840), or proprietary Schneider Electric protocols (e.g., Unity Pro, EcoStruxure) that require authenticated access.


Exploitation Scenarios

The following attack chain demonstrates a realistic exploitation path for CVE-2026-14354 within a Schneider Electric-managed industrial environment.

Phase 1: Reconnaissance & Target Identification

  1. Initial compromise: Attacker gains local privileged access to an engineering workstation running Schneider Electric management software (e.g., through phishing, USB drop, supply chain compromise, or lateral movement from another internal vector).
  2. Identify credential stores: The attacker enumerates the system for configuration files, XML/JSON configs, registry keys, or databases associated with the Schneider Electric application. Common locations:
    • C:\ProgramData\Schneider Electric\...
    • C:\Users\<user>\AppData\Roaming\Schneider Electric\...
    • SQLite databases (*.db, *.sqlite) in installation directories
    • Windows Registry keys under HKLM\SOFTWARE\Schneider Electric\...

Phase 2: Credential Extraction

  1. Static analysis of encryption: The attacker inspects the application binary (.exe, .dll) using tools like Ghidra, IDA Pro, or x64dbg to locate the encryption/obfuscation routine used for stored credentials.
  2. Key extraction: Through static analysis, the attacker identifies hardcoded keys, IVs, or algorithm implementations (e.g., a static XOR key, AES key embedded in a config file, or weak KDF like MD5).
  3. Decrypt credential data: The attacker writes a decryption script (e.g., Python with pycryptodome) that mimics the application's decryption logic to extract all stored device credentials in plaintext.
    • This may yield username/password pairs for Modbus PLCs, EcoStruxure controllers, or power management devices.

Phase 3: Authentication Bypass & Credential Modification

  1. Bypass authentication: The attacker uses extracted credentials to authenticate to managed devices over the network, bypassing legitimate authentication mechanisms (T1078).
  2. Modify credentials: Using the same local application vulnerability, the attacker modifies the stored credentials within the application's credential store to:
    • Change device passwords to known values (locking out operators)
    • Insert rogue device entries with attacker-controlled credentials
    • Reconfigure scheduled maintenance windows to disable security alerts

Phase 4: Post-Exploitation Impact

  1. Device manipulation: With authenticated access to PLCs or other managed devices, the attacker can:

    • Upload malicious logic/firmware to PLCs (e.g., TRITON/TRISIS malware patterns)
    • Manipulate process setpoints leading to physical damage
    • Alter alarm thresholds to suppress detection of abnormal operations
    • Persist by modifying credential stores on other workstations via shared configuration repositories
  2. Persistence: The attacker plants modified credential files ensuring continued access even after IT/OT administrators change passwords — since they own the stored credential repository.


Impact Assessment

Business Impact

  • Confidentiality: Stored credentials for managed devices are exposed, allowing laterally privileged access to industrial control network segments. Credential extraction undermines the trust boundary between IT and OT environments.
  • Integrity: Credential modification enables unauthorized configuration changes, potential firmware backdooring, and data manipulation on field devices.
  • Availability: Locking out legitimate operators, corrupting device connections, or loading malicious logic can disrupt production.

Affected Systems

  • Schneider Electric products that maintain persistent credential stores for managed devices:
    • EcoStruxure Power Operations
    • EcoStruxure Control Expert (Unity Pro)
    • Modicon PLC programming tools
    • PowerLogic SCADA systems
    • Other configuration/management utilities

Blast Radius

  • CVSS Impact Subscores: N/A (no CVSS vector published)
  • EPSS: 0.00117 (1.9th percentile) — low exploitation likelihood
  • CISA KEV: Not listed
  • Since the vulnerability is unpatched, all deployments of the affected application are at risk.

Severity Context

While EPSS suggests low current exploitation activity, this vulnerability is introduced in industrial control environments where the potential impact — physical process disruption — far exceeds typical IT vulnerability consequences. The "privileged local attacker" requirement does not diminish severity in OT contexts where insider threats and supply chain compromises are realistic.


Detection Guidance

Sigma Rule

title: Schneider Electric Credential Store Access via CVE-2026-14354
id: 8f9e4b2a-7c3d-4e5f-9a1b-2c3d4e5f6a7b
status: experimental
description: Detects unauthorized access or modification of Schneider Electric credential store files on engineering workstations.
author: Valtersit Threat Intelligence
logsource:
    category: file_event
    product: windows
detection:
    selection_credential_paths:
        TargetFilename|contains:
            - 'Schneider Electric'
            - 'EcoStruxure'
            - 'Modicon'
        TargetFilename|endswith:
            - '.conf'
            - '.cfg'
            - '.db'
            - '.sqlite'
            - '.xml'
            - '.dat'
    selection_credential_globbing:
        TargetFilename|startswith:
            - 'C:\ProgramData\Schneider Electric\'
            - 'C:\Users\'
            - 'C:\Program Files\Schneider Electric\'
    detection_anomalies:
        - TargetFilename|contains: 'credential'
        - TargetFilename|contains: 'password'
        - TargetFilename|contains: 'auth'
    condition: selection_credential_paths and selection_credential_globbing and detection_anomalies
level: high
falsepositives:
    - Legitimate configuration management during scheduled maintenance
    - Initial software installation
tags:
    - attack.credential_access
    - attack.t1078
    - cve.2026-14354
    - cwe.522

YARA Rule

rule CVE_2026_14354_Schneider_Credential_Decrypt
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects tooling or scripts attempting to extract/modify Schneider Electric credential stores"
        cve = "CVE-2026-14354"
        cwe = "CWE-522"
        severity = "high"
    strings:
        $s1 = "Schneider Electric" nocase
        $s2 = "EcoStruxure" nocase
        $s3 = "Modicon" nocase
        $s4 = "credentials" nocase
        $s5 = ".sqlite" nocase
        $s6 = "password" nocase
        $s7 = "username" nocase
        $s8 = "deobfuscate" nocase
        $s9 = "decrypt_password" nocase
        $s10 = { 0x42 0x5A 0x1F 0x3C }  // potential obfuscation signature
    condition:
        (uint16(0) == 0x5A4D or uint32(0) == 0x464C457F)  // PE or ELF binary
        and 3 of ($s*)
        and any of ($s1, $s2, $s3)
}

Suricata IDS Rule

alert tcp any any -> any 502 (msg:"CVE-2026-14354 - Potential Modbus Credential Reuse After Schneider Credential Theft"; flow:established,to_server; content:"|00|"; depth:1; content:"|00 00 00 00 00 06 01|"; offset:6; depth:7; content:"|FF 42|"; offset:12; within:2; metadata:created_at 2026_05_15, updated_at 2026_05_15; classtype:attempted-admin; sid:10025401; rev:1;)

alert tcp any any -> any 502 (msg:"CVE-2026-14354 - Abnormal Modbus Function Code Indicative of Unauthorized PLC Control"; flow:established,to_server; content:"|00|"; depth:1; content:"|00 00 00 00 00 06 01|"; offset:6; depth:7; content:"|10|"; offset:12; within:2; metadata:created_at 2026_05_15; classtype:attempted-admin; sid:10025402; rev:1;)

Elastic Detection

// EQL query to detect process executing decryption scripts against Schneider Electric stores
sequence by host.id, user.name with maxspan=30s
  [process where event.type == "start" and process.name in (
      "python.exe", "python3.exe", "perl.exe", "powershell.exe"
  ) and process.command_line in (
      "*decrypt*", "*credential*", "*Schneider*", "*EcoStruxure*", "*Modicon*"
  )]
  [file where event.type in ("creation", "modification") and
   file.path : ("*Schneider Electric*", "*EcoStruxure*") and
   file.extension : ("conf", "cfg", "db", "sqlite", "xml", "dat")]

Splunk SPL Query

index=main sourcetype=WinEventLog:Security OR sourcetype=XmlWinEventLog
| search EventCode=4656 OR EventCode=4663
| rex field=Message "Object_Name\":\"(?<object_path>[^\"]+)"
| search object_path IN ("*Schneider Electric*", "*EcoStruxure*", "*Modicon*")
| stats count by image, object_path, Account_Name
| where count > 25
| table _time, image, object_path, Account_Name, count
| sort - count

Wazuh OSSEC Rule

<group name="schneider,cve-2026-14354,">
  <rule id="100251" level="12">
    <decoded_as>syscheck</decoded_as>
    <field name="file">\.(db|sqlite|conf|cfg|xml|dat)$</field>
    <field name="file_contains">Schneider Electric|EcoStruxure|Modicon</field>
    <description>CVE-2026-14354: Schneider Electric credential store accessed - possible unauthorized credential extraction</description>
    <group>credential_access,</group>
  </rule>

  <rule id="100252" level="10">
    <decoded_as>command</decoded_as>
    <match>python|perl|powershell</match>
    <match>decrypt|credentials|password</match>
    <description>CVE-2026-14354: Possible decryption script execution attempting credential store exploitation</description>
    <group>credential_access,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Status

UNPATCHED — No patch evidence exists from any tracked source (patch confidence: 0/4). The vendor, Schneider Electric, has not yet released a security advisory or fixed version for CVE-2026-14354. Continuously monitor Schneider Electric's security notification portal (https://www.se.com/ww/en/download/document/SESB-2026-XXX/) for instrumented updates.

1. Immediate Mitigations (compensating controls)

  • Restrict local administrative access: Enforce least-privilege policies — only authorized engineering personnel should have local admin rights on Schneider Electric management workstations.
  • Implement application allowlisting: Use Microsoft AppLocker or third-party tools to prevent unauthorized executables (Python, PowerShell, scripting tools) from running on engineering workstations.
  • Enable credential storage encryption: If the application supports it, enable OS-level bitlocker or EFS encryption on directories where credential files reside.
  • Harden file permissions: Apply restrictive ACLs on C:\ProgramData\Schneider Electric\ and related paths — restrict to the service account and authorized administrators only.
  • Monitor credential file activity: Deploy file integrity monitoring (FIM) — use Wazuh's syscheck or Tripwire — to alert on any modification to *.db, *.sqlite, *.conf files in Schneider Electric installation directories.
  • Network segmentation: Isolate engineering workstations from the broader corporate network and limit outbound connectivity to only necessary OT protocols (e.g., Modbus TCP port 502, OPC UA 4840).

2. Patch/Upgrade Steps

  • Track vendor advisory: Subscribe to Schneider Electric security bulletins at https://www.se.com/ww/en/work/support/cybersecurity/security-notifications/
  • Test and apply patch: Upon release, apply the vendor patch on a staging environment that mirrors production configuration.
  • Credential rotation: After patching, rotate all credentials managed by the application to invalidate any stolen credential material.

3. Long-Term Hardening

  • Adopt hardware security modules (HSM): Store device credentials in FIPS 140-2/140-3 validated HSMs or Key Management Systems (KMS) rather than application-local files.
  • Implement privileged access management (PAM): Centralize OT credential vaulting with CyberArk, HashiCorp Vault, or similar, preventing credentials from resting in vulnerable local stores.
  • Regular penetration testing: Commission periodic red team assessments focused on OT credential stores.
  • Zero trust architecture: Assume all local users are untrusted; verify identity and authorization for every credential access request.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-14354
  2. CWE-522 Reference: https://cwe.mitre.org/data/definitions/522.html
  3. MITRE ATT&CK T1078 — Valid Accounts: https://attack.mitre.org/techniques/T1078/
  4. EPSS Data: https://www.first.org/epss/data_stats
  5. CISA Known Exploited Vulnerabilities (KEV): https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Threat Actor Campaigns

No active threat actor campaigns specifically tied to CVE-2026-14354 have been recorded as of the reporting date. The vulnerability has a low EPSS percentile (1.9%), indicating it is not currently under active mass exploitation. However, the underlying weakness pattern (CWE-522) has been leveraged in previous OT-targeted campaigns, most notably:

  • TRITON/TRISIS (2017): Targeted Schneider Electric Triconex safety PLCs via credential theft and unauthorized access.
  • Industroyer/CrashOverride (2016): Exploited credential mismanagement in ICS protocols.
  • NotPetya (2017): Credential harvesting and lateral movement in enterprise environments bridged to OT networks.

While no in-the-wild exploitation of this CVE has been confirmed, the OT sector's historical pattern of delayed patch adoption and credential mismanagement elevates the actual risk above the EPSS projection.

👁️ 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.

port:8443

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-14354/ · 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.