Procyon Core Server HMI <= v1.13 Coreservice.exe Stack Buffer Overflow

Credit: metasploit
Risk: High
Local: No
Remote: Yes
CWE: CWE-119

CVSS Base Score: 10/10
Impact Subscore: 10/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Complete
Integrity impact: Complete
Availability impact: Complete

Summary stratsec has identified a remote stack overflow vulnerability within the Procyon Core Server HMI service. The vulnerability can be triggered by sending a specially crafted request to port 23. This vulnerability can lead directly to remote code execution running with the elevated privileges of the service. Failed attempts will likely lead to a denial of service condition. Description Procyon Core HMI Server is a low cost but flexible software package suitable for simple HMI through to SCADA and large scale DCS systems that is compatible with all Data Track Process Instrument products. During installation, the server installs itself as a Windows service and automatically recovers if the service crashes. Due to the fact that it is running as a Windows service, code executed by the service executes with SYSTEM privileges. Impact A remote attacker could perform remote code execution with elevated privileges against an exposed vulnerable version of Procyon Core server. The impact is likely to depend on the vulnerable environment and its use of the software. Technical Details The memory corruption vulnerability is within the &#8216;Coreservice.exe&#8217; process that allows an attacker to perform an arbitrary read and write operation. This vulnerability can be leveraged to trigger a stack based buffer overflow. This vulnerability allows remote attackers to execute arbitrary code via a long password request to TCP port 23 of the affected server. 00475DD7 mov eax, [eax+edx*4-4] ; initially, the attacker has control over EAX and EDX 00475DDB lea edx, [ebp+var_4D] 00475DDE call sub_40A288 An arithmetic calculation is completed on EAX and EDX to determine the destination address for the following copy operation. sub_40A288: 0040A288 push edi 0040A289 push esi 0040A28A mov esi, eax 0040A28C mov edi, edx 0040A28E mov ecx, 0FFFFFFFFh 0040A293 xor al, al 0040A295 repne scasb ; a fixed sized buffer of 52 bytes 0040A297 not ecx 0040A299 mov edi, esi 0040A29B mov esi, edx 0040A29D mov edx, ecx 0040A29F mov eax, edi 0040A2A1 sh ecx, 2 0040A2A4 rep movsd ; stack overflow is here 0040A2A6 mov ecx, edx 0040A2A8 and ecx, 3 0040A2AB rep movsb Affected products Procyon Core Server v1.06 has been confirmed vulnerable. Other versions before 1.14 are also likely to be affected. Proof of concept A commercial grade Proof of Concept (PoC) exploit has been developed and can be found in Metasploit&#8217;s repository: Solution Upgrade to Procyon Core Server version 1.14. This version has not been independently tested by stratsec. Response timeline 19/07/2011 - Vendor notified. 19/07/2011 - Vendor acknowledges receipt of advisory. 19/07/2011 - The vendor confirms issue presence and identifies a third party security company, Nsense, who had also independently discovered and notified them of the vulnerability one month prior. 20/07/2011 - stratsec contacts Nsense&#8217;s research team to plan a coordinated release. 20/07/2011 - stratsec contacts The US Department of Homeland Security ICS-CERT for confirmation of the vulnerability. 20/07/2011 - Nsense agree to execute a coordinated release. 21/07/2011 - ICS-CERT co-ordinate a 30 day patch release directly with the vendor. 01/09/2011 - ICS-CERT notify Nsense that the planned release date of the advisory is 6 September 2011. 06/09/2011 - ICS-CERT releases the advisory to the public. 08/09/2011 - This advisory published. Acknowledgments stratsec would like to thank the Nsense Security Research Team ( for their collaborative efforts and professionalism. References ICS-CERT advisory: CVE item: CVE-2011-3322


Vote for this issue:


Thanks for you vote!


Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.

(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2020,


Back to Top