Kernel drivers in Beckhoff TwinCAT 3.1 Build 4022.4, TwinCAT 2.11 R3 2259, and TwinCAT 3.1 lack proper validation of user-supplied pointer values. An attacker who is able to execute code on the target may be able to exploit this vulnerability to obtain SYSTEM privileges.
The product obtains a value from an untrusted source, converts this value to a pointer, and dereferences the resulting pointer.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Twincat | Beckhoff | 2.11 (including) | 2.11 (including) |
Twincat | Beckhoff | 3.1 (including) | 3.1 (including) |
Twincat_c++ | Beckhoff | 3.1 (including) | 3.1 (including) |
An attacker can supply a pointer for memory locations that the product is not expecting. If the pointer is dereferenced for a write operation, the attack might allow modification of critical state variables, cause a crash, or execute code. If the dereferencing operation is for a read, then the attack might allow reading of sensitive data, cause a crash, or set a variable to an unexpected value (since the value will be read from an unexpected memory location). There are several variants of this weakness, including but not necessarily limited to: