In dnsmasq before 2.78, if the DNS packet size does not match the expected size, the size parameter in a memset call gets a negative value. As it is an unsigned value, memset ends up writing up to 0xffffffff zero's (0xffffffffffffffff in 64 bit platforms), making dnsmasq crash.
| Software | From | Fixed in |
|---|---|---|
| redhat / enterprise_linux_desktop | 7.0 | 7.0.x |
| redhat / enterprise_linux_workstation | 7.0 | 7.0.x |
| redhat / enterprise_linux_server | 7.0 | 7.0.x |
| debian / debian_linux | 7.1 | 7.1.x |
| novell / leap | 42.2 | 42.2.x |
| debian / debian_linux | 7.0 | 7.0.x |
| canonical / ubuntu_linux | 16.04 | 16.04.x |
| canonical / ubuntu_linux | 14.04 | 14.04.x |
| canonical / ubuntu_linux | 17.04 | 17.04.x |
| debian / debian_linux | 9.0 | 9.0.x |
| fedoraproject / fedora | 27 | 27.x |
| novell / leap | 42.3 | 42.3.x |
| thekelleys / dnsmasq | - | 2.77.x |