1From eb92fb32b746f2104b0f370b5b295bb8dd4bd5e5 Mon Sep 17 00:00:00 2001 2From: Simon Kelley <simon@thekelleys.org.uk> 3Date: Tue, 7 Mar 2023 22:07:46 +0000 4Subject: [PATCH] Set the default maximum DNS UDP packet size to 1232. 5 6http://www.dnsflagday.net/2020/ refers. 7 8Thanks to Xiang Li for the prompt. 9 10CVE: CVE-2023-28450 11Upstream-Status: Backport [https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=eb92fb32b746f2104b0f370b5b295bb8dd4bd5e5] 12 13Signed-off-by: Peter Marko <peter.marko@siemens.com> 14--- 15 man/dnsmasq.8 | 3 ++- 16 src/config.h | 2 +- 17 2 files changed, 3 insertions(+), 2 deletions(-) 18 19diff --git a/man/dnsmasq.8 b/man/dnsmasq.8 20index 41e2e04..5acb935 100644 21--- a/man/dnsmasq.8 22+++ b/man/dnsmasq.8 23@@ -183,7 +183,8 @@ to zero completely disables DNS function, leaving only DHCP and/or TFTP. 24 .TP 25 .B \-P, --edns-packet-max=<size> 26 Specify the largest EDNS.0 UDP packet which is supported by the DNS 27-forwarder. Defaults to 4096, which is the RFC5625-recommended size. 28+forwarder. Defaults to 1232, which is the recommended size following the 29+DNS flag day in 2020. Only increase if you know what you are doing. 30 .TP 31 .B \-Q, --query-port=<query_port> 32 Send outbound DNS queries from, and listen for their replies on, the 33diff --git a/src/config.h b/src/config.h 34index 1e7b30f..37b374e 100644 35--- a/src/config.h 36+++ b/src/config.h 37@@ -19,7 +19,7 @@ 38 #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */ 39 #define TCP_MAX_QUERIES 100 /* Maximum number of queries per incoming TCP connection */ 40 #define TCP_BACKLOG 32 /* kernel backlog limit for TCP connections */ 41-#define EDNS_PKTSZ 4096 /* default max EDNS.0 UDP packet from RFC5625 */ 42+#define EDNS_PKTSZ 1232 /* default max EDNS.0 UDP packet from from /dnsflagday.net/2020 */ 43 #define SAFE_PKTSZ 1232 /* "go anywhere" UDP packet size, see https://dnsflagday.net/2020/ */ 44 #define KEYBLOCK_LEN 40 /* choose to minimise fragmentation when storing DNSSEC keys */ 45 #define DNSSEC_WORK 50 /* Max number of queries to validate one question */ 46-- 472.20.1 48 49