This POC uses OFPGroupDescStatsReply as an example. The OFPGroupDescStatsReply message will be accompanied by an OFPGroupDescStats structure, in which the length of OFPBucket is tampered with to 0.
This problem also occurs with the following code:
/ryu/ofproto/ofproto_v1_3_parser.py about line=4685
/ryu/ofproto/ofproto_v1_4_parser.py about line=2548
/ryu/ofproto/ofproto_v1_5_parser.py about line=5893
in /ryu/ofproto/ofproto_v1_3_parser.py about line=4685
If OFPBucket.len=0,the offset and length will no longer change and the parsing will fall into an infinite loop.
payload:
poc:
This POC uses OFPGroupDescStatsReply as an example. The OFPGroupDescStatsReply message will be accompanied by an OFPGroupDescStats structure, in which the length of OFPBucket is tampered with to 0.