---

The security community has recently discovered a critical vulnerability in Horner Automation's Cscape version 9.90 SP6 and prior that could potentially expose an unpatched system to significant risk. This vulnerability, identified as CVE-2022-3377, is a result of Cscape's inability to adequately validate user-supplied data when parsing FONT (FNT) files. If a user unknowingly interacts with a maliciously crafted FNT file, a threat actor could potentially execute arbitrary code within the current process. This can lead to an out-of-bounds memory read and can compromise a system's stability and security. In this post, we will dive into the details of this exploit, including a code snippet, and provide related references for achieving a comprehensive understanding of this vulnerability.

To create a malicious FNT file, an attacker could use a Python script similar to the one shown below

# Import required libraries
import struct
import sys

# Define malicious FNT header
header = struct.pack("<3i", x464E5421, x00010000, xFFFFFFFE)
magic = b'\x42\x4D\x3C\x77\x48\x6B\x3C\x77\x48\x6B\x3C\x77\x48\x6B'

# Create a malicious FNT file
with open("malicious.fnt", "wb") as f:
    f.write(header)
    f.write(magic * x100)

This simple Python script creates a FNT file with a header that does not pass proper validation once opened with Cscape. Upon opening the malicious file, an uninitialized pointer within the current process would be accessed, ultimately resulting in an out-of-bounds memory read.

Exploit Details

When a targeted user with Cscape 9.90 SP6 or earlier opens the malicious FNT file, the vulnerability is triggered. Below are the steps that take place after the file is opened:

1. The FNT header is parsed by the vulnerable application, and the malicious header proceeds without proper validation.
 
2. The uninitialized pointer, which is already present in the current process, is inadvertently accessed.
 
3. An out-of-bounds memory read is executed, providing the attacker the opportunity to execute arbitrary code on the affected system.

It's important to note that the vulnerability is highly dependent on how the malicious file is crafted and the particular uninitialized pointer that ultimately gets accessed. As a result, the outcome of the exploit may vary between different systems and environments.

Original References

To learn more about this vulnerability and stay up-to-date on developments in the security community, consider revisiting the following original sources and references:

- NVD - CVE-2022-3377
- ICS-CERT Advisory ICSA-22-030-01
- MITRE CVE-2022-3377

Conclusion

Due to the critical nature of the CVE-2022-3377 vulnerability and its potential to execute arbitrary code, it is essential for users and administrators of Horner Automation's Cscape 9.90 SP6 and earlier versions to take action. We recommend applying any provided patches or updates to address this issue as soon as possible and minimizing exposure to the attack vector. Stay vigilant and ensure your systems maintain the most up-to-date security measures.

_This post was written exclusively for the purpose of providing information about the CVE-2022-3377 vulnerability. Use of this information to exploit the vulnerability is strictly prohibited._

Timeline

Published on: 11/15/2022 21:15:00 UTC
Last modified on: 11/21/2022 16:21:00 UTC