Skip to content

p-net malformed RPC request sequence may cause denial of service #598

@JianWeiHuang-stu

Description

@JianWeiHuang-stu

Discription

During fuzz testing of the Profinet RPC path in p-net, a malformed multi-request sequence was found that causes the sample device process to stop responding. It has been confirmed that this issue is not triggered by a single random corrupted packet, but by a malformed RPC sequence with clear stateful dependencies.

The basic structure of the sequence is:

  1. RPC_Connect_Req
  2. RPC_Write_Req_Param
  3. RPC_Read_Req_Param
  4. RPC_PrmEnd_Req
  5. RPC_Release_Req

From external observation, after the sequence is triggered, the target no longer responds to new Profinet RPC liveness probes.

The attached replay_inputs_to_dut.py script is used to trigger this issue, and check_pnet_alive.py is used as the liveness check script. The tested target is p-net release version v1.0.2 on Linux.

check_pnet_alive.py
replay_inputs_to_dut.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions