Details
Description
Naturally, a ForwardOpen has the maximum connection size of 511 bytes (Including 16-bit sequence counter, 32-bit real-time header if exists).
Seemingly, if I open a class 3 connection towards the device wit ha size of 511 bytes, and then send a service request over the connection which is larger, the request succeeds (at least it arrives at the object level, which seems to be wrong):
I assume we are missing a size check and also have a classical buffer overflow situation here with all the usual malicious effects.. The maximum size of a CIP class 3 excplicit service request shall be checked and limited by the size of the class 3 connection. Overly large requests (and responses) shall be rejected.