Background
PTC Windchill PDMLink is the dominant product lifecycle management (PLM) platform in manufacturing and engineering environments, used to manage product data, CAD documents, bills of materials, and engineering change processes across complex supply chains. FlexPLM is PTC’s PLM offering for retail, apparel, and footwear verticals. Both products share an underlying application stack and are widely deployed on-premises in large enterprises, often with network connectivity to engineering workstations, ERP systems, and external partner portals.
CVE-2026-12569 is a deserialization vulnerability (CWE-502) with an associated input validation failure (CWE-20) that allows an unauthenticated, network-adjacent or remote attacker to execute arbitrary code on the Windchill or FlexPLM server. PTC assigned a CVSS 4.0 score of 9.3 (CRITICAL). CISA added the vulnerability to the Known Exploited Vulnerabilities catalog on June 25, 2026, with a three-day federal remediation deadline of June 28, 2026.
Active exploitation has been confirmed. Intrusion indicators include JSP webshells dropped to the Windchill login directory, consistent with post-exploitation tooling deployed following successful deserialization exploitation.
Technical Mechanism
The root cause is deserialization of attacker-controlled input at an unauthenticated network endpoint. Windchill’s Java-based application server accepts serialized objects over the network as part of its API and session handling. The application fails to validate or restrict the class types of deserialized objects before processing them, allowing an attacker to submit a malicious serialized payload containing a gadget chain that executes arbitrary code when deserialized by the server’s JVM.
This class of vulnerability — Java deserialization RCE — has been well-understood since 2015 and is characterised by several properties relevant to detection and mitigation:
- No authentication is required. The vulnerable endpoint is reachable before any session is established.
- Exploitation is network-based. An attacker with TCP connectivity to the Windchill HTTP(S) service can trigger the flaw without local access.
- The gadget chain leverages existing Java libraries on the classpath. No custom payload delivery is required beyond the serialized object itself.
- Post-exploitation typically involves dropping a webshell or establishing a reverse shell for persistent access.
PTC has not publicly disclosed the specific endpoint path or servlet that processes the malicious input. The X-windchill-req HTTP header has been identified as having no legitimate application purpose and should be treated as an exploitation indicator when observed in server logs.
Real-World Exploitation Evidence
Active exploitation of CVE-2026-12569 was confirmed prior to CISA’s KEV addition on June 25, 2026. The observed post-exploitation pattern is consistent with automated or semi-automated tooling:
- JSP webshells with 16-character lowercase hexadecimal filenames appearing in the Windchill login directory. The pattern matches the regex
/Windchill/login/[0-9a-f]{16}.jsp. - Suspicious POST requests targeting these dynamically-generated JSP paths following the initial exploitation request.
The Windchill login directory is web-accessible by design. Files written there by the application server process are immediately reachable by external HTTP clients, making it an effective webshell deployment location. The 16-character hex naming pattern is consistent with automated post-exploitation frameworks that generate random filenames to reduce collision probability and avoid static IOC matching.
No specific threat actor or ransomware group has been publicly attributed to observed exploitation as of June 25, 2026.
Impact Assessment
- Unauthenticated RCE — an attacker with network access to the Windchill HTTP service can execute arbitrary commands in the context of the application server process without presenting credentials
- Persistent access — observed exploitation deploys JSP webshells that survive patch application unless explicitly removed during remediation
- PLM data exposure — Windchill stores engineering drawings, CAD files, bills of materials, supplier data, and product configurations; compromise provides access to IP representing years of engineering investment
- Supply chain risk — many Windchill deployments connect to external partner portals and ERP systems; a compromised Windchill server may serve as a pivot point into connected environments
- No CPS fix available — PTC’s Connected Product Server (CPS) versions are affected with no patch currently available, extending the exposure window for customers on that component
Affected Versions
| Product | Affected Version | Fixed Version |
|---|---|---|
| Windchill PDMLink | 11.0 M030 | Patch available — see CS473270 |
| Windchill PDMLink | 11.1 M020 | Patch available — see CS473270 |
| Windchill PDMLink | 11.2.1.0 | Patch available — see CS473270 |
| Windchill PDMLink | 12.0.2.0 | Patch available — see CS473270 |
| Windchill PDMLink | 12.1.2.0 | Patch available — see CS473270 |
| Windchill PDMLink | 13.0.2.0 | Patch available — see CS473270 |
| Windchill PDMLink | 13.1.0.0 – 13.1.3.0 | Patch available — see CS473270 |
| FlexPLM | 11.0 M030 – 13.0.3.0 | Patch available — see CS473270 |
| PTC Connected Product Server (CPS) | All versions | No fix currently available |
Exact hotfix identifiers and download instructions are in PTC Support article CS473270. A PTC Support account is required to access the advisory.
Remediation Steps
-
Apply PTC patches immediately. Access CS473270 at https://www.ptc.com/en/support/article/CS473270 with your PTC Support credentials. Apply all available hotfixes for your installed version. Prioritise internet-facing deployments.
-
For CPS components with no available patch, disconnect from all external networks immediately. Restrict access to trusted internal IP ranges using firewall rules.
-
Isolate unpatched systems. If immediate patching is not possible, remove Windchill/FlexPLM from internet exposure. Restrict access to the application’s HTTP/HTTPS ports (typically 80, 443, 8080) to internal network segments only at the network perimeter.
-
Scan for webshells. Check the Windchill login directory for JSP files matching the pattern
[0-9a-f]{16}.jsp:find <windchill_install>/wtcore/webapp/com/ptc/windchill/uwgm/security/login/ \ -name "*.jsp" -newer <deployment_date_reference_file>Any unexpected JSP files should be treated as indicators of compromise. Preserve the files for forensic analysis before removal.
-
Review HTTP access logs for POST requests to
/Windchill/login/with 16-character hex filenames and for requests containing theX-windchill-reqheader. -
Apply HTTP Server configuration mitigations referenced in CS473270 even on patched systems, as an additional layer of defence.
Detection Guidance
Web server access logs:
- POST requests to paths matching
/Windchill/login/[0-9a-f]{16}.jsp— this pattern is a reliable exploitation indicator - Requests containing the
X-windchill-reqHTTP header — no legitimate Windchill functionality uses this header - Unusual HTTP methods or large binary POST bodies to Windchill API endpoints, particularly from external source IPs
Filesystem monitoring:
- New JSP files created in the Windchill login directory by the application server process
- New files in
/tmp,%TEMP%, or other writable locations created by the Windchill JVM process - Creation of unexpected listener sockets or child processes spawned by the Java application server
Network monitoring:
- Outbound connections from the Windchill server to external hosts on non-standard ports, which may indicate a reverse shell or C2 beacon established after initial exploitation
SIEM query (Splunk — adapt index/sourcetype to your environment):
index=web sourcetype=access_combined
(uri_path="/Windchill/login/*.jsp" method="POST")
OR (cs_referer_header="X-windchill-req")
| table _time, src_ip, uri_path, method, status
Timeline
| Date | Event |
|---|---|
| June 17, 2026 | CVE-2026-12569 first recorded (NVD discovery date) |
| June 25, 2026 | PTC patches released and CS473270 advisory published |
| June 25, 2026 | CISA adds CVE-2026-12569 to Known Exploited Vulnerabilities catalog |
| June 25, 2026 | JSP webshell deployment observed in active exploitation |
| June 28, 2026 | CISA BOD 26-04 federal remediation deadline |