[Dnsmasq-discuss] Lease attribution on bad network when one configured interface does not exists

Florent Fourcot florent.fourcot at wifirst.fr
Mon Sep 1 19:58:32 UTC 2025


Hello Simon,

We reproduced the bug. It needs a lot of context to be triggered, so 
it's probably a minor issue. However, in short:

   * It needs ranges configured without an explicit netmask, as you 
suspected ;
   * A "packet of death" with the uncommon option 118 set (RFC 3011) is 
mandatory. It explains why it can work several days without issue. After 
this packet, dnsmasq sends bad leases to all clients. A restart is 
mandatory ;
   * It looks like this option forces dnsmasq to "compute" the netmask, 
and its context/netmask configuration is then overwritten. In file 
rfc2131.c, function dhcp_reply:


       for (context_tmp = daemon->dhcp; context_tmp; context_tmp = 
context_tmp->next)
         {
           struct in_addr netmask = context_tmp->netmask;

           /* guess the netmask for relayed networks */
           if (!(context_tmp->flags & CONTEXT_NETMASK) && 
context_tmp->netmask.s_addr == 0)
         {
           if (IN_CLASSA(ntohl(context_tmp->start.s_addr)) && 
IN_CLASSA(ntohl(context_tmp->end.s_addr)))
             netmask.s_addr = htonl(0xff000000);


A full reproducer and documentation on our finding is available here: 
https://github.com/etene/dnsmasq-opt-118-bug-reproducer

Do not hesitate if we can help or provide more details.

Best regards,

Florent.

-- 
*Ce message et toutes les pièces jointes (ci-après le "message") sont 
établis à l’intention exclusive des destinataires désignés. Il contient des 
informations confidentielles et pouvant être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de détruire le message. Toute utilisation de 
ce message non conforme à sa destination, toute diffusion ou toute 
publication, totale ou partielle, est interdite, sauf autorisation expresse 
de l'émetteur*



More information about the Dnsmasq-discuss mailing list