From fed98adffa40143e3981d4db765ae1dcae1cd839 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Thu, 10 Jul 2025 12:55:07 +0200 Subject: [PATCH] fix: gracefully handle packets that would crash gopacket (fixes #1184) --- modules/zerogod/zerogod_discovery.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/zerogod/zerogod_discovery.go b/modules/zerogod/zerogod_discovery.go index 97d0f486..f6223e54 100644 --- a/modules/zerogod/zerogod_discovery.go +++ b/modules/zerogod/zerogod_discovery.go @@ -201,6 +201,14 @@ func (mod *ZeroGod) logDNS(src net.IP, dns layers.DNS, isLocal bool) { func (mod *ZeroGod) onPacket(pkt gopacket.Packet) { mod.Debug("%++v", pkt) + // sadly the latest available version of gopacket has an unpatched bug :/ + // https://github.com/bettercap/bettercap/issues/1184 + defer func() { + if err := recover(); err != nil { + mod.Error("unexpected error while parsing network packet: %v\n\n%++v", err, pkt) + } + }() + netLayer := pkt.NetworkLayer() if netLayer == nil { mod.Warning("not network layer in packet %+v", pkt)