Description
lldpd is an implementation of IEEE 802.1ab (LLDP). Prior to version 1.0.22, lldpd_decode() in src/daemon/lldpd.c strips 802.1Q VLAN tags from received Ethernet frames by calling memmove() to shift the frame payload 4 bytes left. The third argument (byte count) is s - 2 * ETHER_ADDR_LEN but should be s - 2 * ETHER_ADDR_LEN - 4, causing a 4-byte heap buffer over-read past the malloc(h_mtu) allocation when the received frame size equals the interface MTU. This issue has been patched in version 1.0.22.
Problem types
Product status
References
github.com/.../lldpd/security/advisories/GHSA-2g8p-2h3j-63m3
github.com/lldpd/lldpd/pull/787
github.com/...ommit/ca931be63a9cae0fcd8e9b6ae4e916d49f141cd6
github.com/lldpd/lldpd/releases/tag/1.0.22