From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24424 invoked from network); 22 Mar 2023 12:30:30 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 22 Mar 2023 12:30:30 -0000 Received: (qmail 32301 invoked by uid 550); 22 Mar 2023 12:30:27 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 32258 invoked from network); 22 Mar 2023 12:30:27 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bell-sw-com.20210112.gappssmtp.com; s=20210112; t=1679488215; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=aQ4J9lwfepv9F8HUw4aRIRmSZv8fNA8t63ogigCWixE=; b=KSykINt5vchNEQDL0zNqcQK0LyijcWY+I/PPKb2FL47T/eaF4XPvPimZEiFK6ipgPc vWgWe5PHPZJwi7EdE8v8hMi+X2V1bhdL0uf5OpOQyJhYYDa5BRJVjex+JLHkxXW2X5ay K2VpKQfpmE2bNekvn+4Ju2EimYrk6uYsZeu516l7ZAXV7ho6NtMhWULRXWbloKbh/k1H z/L6wK3Ql3pP+wFn/S8VkvALIz/ykM4zxrgqnxfOqnrCTeAy8556ZYC0xXTJcLrXIpKW PvwhK5Tr4UbmpD5RJFJ2GUwmmCKKGzSC3ZFvafB/KQFxA2HNDvCs5w+IqFOBnhMROnbn Szsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679488215; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=aQ4J9lwfepv9F8HUw4aRIRmSZv8fNA8t63ogigCWixE=; b=j7Z4kJrFtFbK//IZfGTq+apnDUIlKclG2tUE1V67kghJX1YX7Zb2kfQJBaTCNDjlEv KPnbUXyQ6r8iegqXx66W/JzKRh9utPo7UZt3gW7+JDmRkHBzNOBRuZVw0XblOiJie1iu eRBmRFpWnzrPGwpD693YeBpU4bSl+FRhRI4aj2AQms2DtsKxpEXg4B71pUOkUrlX7mL/ fgNYWC9hwI57EnvN9uCjycdtyOW5ZU8UdlhqYqxHN13h6YVVTTia2kr9cEqgM0/veNV2 OHzy6sBZt7IMju99+l8rxnhHx59QZ+A3ssGoABNoOHn4ccvIb4rQYAdaccr0pt3D3k5U CfFQ== X-Gm-Message-State: AO0yUKUckoYIhll7QIgZp3k4fGYipOwIKcXRLnVYs6CTCQ0WYlQVkeaG Op9DegC+1SIJpJtQpMITonkaRUCduS0Cm7FcKg== X-Google-Smtp-Source: AK7set+C5w8gX5ltyHDbUKscUMOCOf9YCJeEc92R2pJ1fVI8oBMetV4unAGaYCYNySRJeHeoQAws8w== X-Received: by 2002:ac2:568d:0:b0:4dd:af74:fe1a with SMTP id 13-20020ac2568d000000b004ddaf74fe1amr1891357lfr.48.1679488215027; Wed, 22 Mar 2023 05:30:15 -0700 (PDT) From: Alexey Kodanev To: musl@lists.openwall.com Cc: Alexey Kodanev Date: Wed, 22 Mar 2023 15:29:16 +0300 Message-Id: <20230322122916.116088-1-aleksei.kodanev@bell-sw.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH] dns: check length field in tcp response message The received length field in the message may be greater than the size of the 'answer' buffer in which the message resides. Currently, ABUF_SIZE is 768. And if we get a larger 'alen', it will result in an out-of-bounds reading during parsing, because 'alen' will be passed to __dns_parse() later: __dns_parse(abuf[i], alens[i], dns_parse_callback, &ctx); To fix this, limit 'alen' to the size of the received buffer. --- src/network/res_msend.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/res_msend.c b/src/network/res_msend.c index fef7e3a2..291853de 100644 --- a/src/network/res_msend.c +++ b/src/network/res_msend.c @@ -297,6 +297,7 @@ int __res_msend_rc(int nqueries, const unsigned char *const *queries, int rcode = answers[i][3] & 15; if (rcode != 0 && rcode != 3) goto out; + if (alen > asize) alen = asize; /* Storing the length here commits the accepted answer. * Immediately close TCP socket so as not to consume -- 2.25.1