Skip to content

Bettercap crashes on DNS packet: slice bounds out of range (ZeroGod module) #1184

@GitClo

Description

@GitClo

Bettercap crashes with a "slice bounds out of range" error when processing DNS packets using the ZeroGod module. This suggests improper packet length validation before passing data to gopacket/layers.

Reproduce:

net.probe on
events.stream off
arp.spoof on

10.10.0.0/16 > 10.10.12.122  » panic: runtime error: slice bounds out of range [:173] with capacity 170

goroutine 182 [running]:
github.com/google/gopacket/layers.(*DNSResourceRecord).decode(0xc001918c18, {0xc000f8830e, 0xaa, 0xaa}, 0x1533540?, {0x4?, 0xc0007b59c8?}, 0xc0007b5c90)
	/path/to/bettercap/vendor/github.com/google/gopacket/layers/dns.go:715 +0x26d
github.com/google/gopacket/layers.(*DNS).DecodeFromBytes(0xc0007b5be8, {0xc000f8830e, 0xaa, 0xaa}, {0x377e1a0, 0x46d0320})
	/path/to/bettercap/vendor/github.com/google/gopacket/layers/dns.go:372 +0x965
github.com/bettercap/bettercap/v2/modules/zerogod.(*ZeroGod).onPacket(0xc000148580, {0x3791e98, 0xc002075080})
	/path/to/bettercap/modules/zerogod/zerogod_discovery.go:232 +0x349
github.com/bettercap/bettercap/v2/modules/zerogod.(*ZeroGod).startDiscovery.func1()
	/path/to/bettercap/modules/zerogod/zerogod_discovery.go:315 +0xb3
created by github.com/bettercap/bettercap/v2/modules/zerogod.(*ZeroGod).startDiscovery in goroutine 156
	/path/to/bettercap/modules/zerogod/zerogod_discovery.go:308 +0x2e5

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions