[PATCH 4/5] resolv: Fix buffer overreads in ns_sprintrrf (CVE-2026-6238)
Andreas Schwab
schwab@suse.de
Mon Jun 8 11:46:39 GMT 2026
On Apr 30 2026, Florian Weimer wrote:
> @@ -532,9 +543,10 @@ ns_sprintrrf(const u_char *msg, size_t msglen,
>
> /* address suffix: provided only when prefix len != 128 */
> if (pbit < 128) {
> - if (rdata + pbyte >= edata) goto formerr;
> + unsigned int bytelen = sizeof(a) - pbyte;
> + if (edata - rdata < bytelen) goto formerr;
> memset(&a, 0, sizeof(a));
> - memcpy(&a.s6_addr[pbyte], rdata, sizeof(a) - pbyte);
> + memcpy(&a.s6_addr[pbyte], rdata, bytelen);
> if (inet_ntop (AF_INET6, &a, buf, buflen) == NULL)
> return -1;
> addlen(strlen(buf), &buf, &buflen);
bytelen should also replace the operand in the next line:
rdata += sizeof(a) - pbyte;
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
More information about the Libc-alpha
mailing list