Glibc vulnerability was identified in uClibc and fixed 6 years ago
dev.openwrt.org
dev.openwrt.org
uClibc fix: https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patch...
glibc fix: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b995d95a...
It's totally different code.
For example, the following busybox commands are triggering a segmentation
fault with uClibc 0.9.30.x
- nslookup ipv6.google.com
- ping ipv6.google.com
- wget http//ipv6.google.com/
If this had been the glibc bug, you would have noticed it way earlier.The commit message starts out "Fix use-after-free bug in __dns_lookup." First, the glibc thing wasn't a use-after-free; it was all about buffers on the stack. Second, there's no function named __dns_lookup anywhere in glibc, nor any sign that similar code is anywhere to be found:
titan:~/src/libc/glibc geofft$ git grep __dns_lookup
titan:~/src/libc/glibc geofft$ git grep 'a->atype'
titan:~/src/libc/glibc geofft$ git grep '>dotted'
titan:~/src/libc/glibc geofft$uClibc was mainly trying to be a cut-down version of glibc, but musl aims for correctness (which can be difficult when a fair bit of software out there relies on glibc's quirks and bugs).
I didn't bother to check in detail it but it could mean the getaddrinfo() was taken from glibc, and later fixed, but fix not backported to glibc. Just a guess though.
Could someone shine more light on this?