Reported by: glebius
Reported by: syzbot+981c528ccb5c5534dffc@syzkaller.appspotmail.com
Details
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Continuing out discussion that we had before in email. After more thinking on this I'm convinced we should filter this out at ICMP input and don't let it down to TCP/UDP control input method. Any legitimate ICMP in principle is a reaction to a packet that we sent. We never send a packet with zero source address. Let's for a minute imagine that we did! In that case an ICMP reply to this packet should go to zero address. How is it going to reach us in that case? The only absolutely imaginary situation that I can see is that we send from 0.0.0.0 and the closest gateway sends us that packet back wrapped into ICMP and uses layer 2 header to determine where it actually should send it to.
Or I can formulate it other way. The source address in the IP packet embedded into ICMP must be the same as destination address of the outer IP packet. If they are different, the ICMP packet is illegitimate.