+7 May 2026: Wouter
+ - Fix for Heap Out-of-Bounds Write via size_t-to-int Truncation
+ in setup_if() - outside_network_create(). This fixes that
+ large values for num_ports do not overflow and create
+ invalid references after integer truncation. Thanks
+ to Karnakar Reddy (@karnakarreddi) for the report.
+
1 May 2026: Wouter
- iana portlist updated.
!netblockstrtoaddr(addrstr, UNBOUND_DNS_PORT,
&pif->addr, &pif->addrlen, &pif->pfxlen))
return 0;
+#ifdef INT_MAX
+ if(numfd > (size_t)INT_MAX) {
+ log_err("num_ports exceeds INT_MAX");
+ return 0;
+ }
+#endif
pif->maxout = (int)numfd;
pif->inuse = 0;
pif->out = (struct port_comm**)calloc(numfd,
outside_network_delete(outnet);
return NULL;
}
+#ifdef INT_MAX
+ if(num_ports > (size_t)INT_MAX) {
+ log_err("outgoing num_ports exceeds INT_MAX");
+ outside_network_delete(outnet);
+ return NULL;
+ }
+#endif
#ifndef INET6
do_ip6 = 0;
#endif