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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel