Hi all,

It seems among others, the following packet:
84c1c177a9ee00defb42df2b0800450805dcaa8a40003e065144832964c5592cfa2a85800016016ed480ff550ad5801001f5df2b00005604ccee420000000000038f846fd84b791539f324fe60e4d265b8066f11686ac6f79eff4abfd3922208aedebedd1e25641222121185e75e1478b61c0dd7291503fa79936d8a61785c85000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Causes an infinite loop in TCP parsing, upon calling pkt = 
packet.Packet(array.array('B', ev.msg.data)), having RYU blocked taking 100% of 
CPU load.

  File "/home/tom/.local/lib/python3.6/site-packages/ryu/base/app_manager.py", 
line 290, in _event_loop
    handler(ev)
  File "/home/tom/workspace/ryu/ryu/app/simple_switch_13_vlan.py", line 210, in 
_packet_in_handler
    pkt = packet.Packet(array.array('B', ev.msg.data))
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/packet.py", 
line 67, in __init__
    self._parser(parse_cls)
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/packet.py", 
line 76, in _parser
    proto, cls, rest_data = cls.parser(rest_data)
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/tcp.py", 
line 142, in parser
    opt, option_buf = TCPOption.parser(option_buf)
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/tcp.py", 
line 225, in parser
    return subcls.parse(buf)
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/tcp.py", 
line 334, in parse
    return cls(blocks, cls.cls_kind, length), buf[length:]
  File "/home/tom/.local/lib/python3.6/site-packages/ryu/lib/packet/tcp.py", 
line 316, in __init__
    super(TCPOptionSACK, self).__init__(kind, length)

The packet is malformed or at least has unknown option values.  Probably comes 
from the anonymzation process. Still, it is a bit problematic to crash RYU...

I tried with the python from the latest pip (4.32), git's master 4.33 and git 
v4.6 (the latest installed from the git subtree with python3 -m pip install 
--user . --upgrade).

Thanks,

Tom

_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to