bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 10:43 UTC
[Bug 2702] New: ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
Bug ID: 2702
Summary: ssh compiled with --with-ldns segfaults during
known_hosts parsing
Product: Portable OpenSSH
Version: 7.5p1
Hardware: amd64
OS: Linux
Status: NEW
Severity: normal
Priority: P5
Component: ssh
Assignee: unassigned-bugs at mindrot.org
Reporter: aranea at aixah.de
Created attachment 2968
--> https://bugzilla.mindrot.org/attachment.cgi?id=2968&action=edit
Backtrace of ssh 7.5p1 segfaulting
When OpenSSH-7.5p1 is compiled with "./configure --with-ldns", ssh
<somehost> segfaults if the host's key is already recorded in
known_hosts.
The current head of the master branch is affected too. Builds with
--without-ldns don't exhibit the problem, and neither does
OpenSSH-7.4p1 (according to git bisect, the commit 523db854 "prefer to
use ldns-config to find libldns" introduced the bug).
My ssh_config is empty, and I've tested this against a variety of
sshd's (including github.com). I'll attach a backtrace; if you need a
coredump or information about my build environment, please let me know.
--
You are receiving this mail because:
You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 11:06 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702 --- Comment #1 from Luis Ressel <aranea at aixah.de> --- Interestingly, running "./configure --with-ldns" before the first bad commit reports "libldns support: no"; hence it's likely that the real bug is older and it's just been masked so far by configure not finding the ldns library. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 11:25 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702 --- Comment #2 from Luis Ressel <aranea at aixah.de> --- Sorry, please ignore my previous comment. I mixed up the logs. -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 12:03 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702 --- Comment #3 from Luis Ressel <aranea at aixah.de> --- Created attachment 2969 --> https://bugzilla.mindrot.org/attachment.cgi?id=2969&action=edit Build log for last good commit c998bf0a with --with-ldns -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 12:04 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702 --- Comment #4 from Luis Ressel <aranea at aixah.de> --- Created attachment 2970 --> https://bugzilla.mindrot.org/attachment.cgi?id=2970&action=edit Build log for first bad commit 523db854 with --with-ldns -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 12:13 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702 --- Comment #5 from Luis Ressel <aranea at aixah.de> --- Created attachment 2971 --> https://bugzilla.mindrot.org/attachment.cgi?id=2971&action=edit Build log for first bad commit 523db854 with --without-ldns I've attached some build logs. Looking at the diff between the two logs for the bad commit, it looks like --with-ldns confuses ./configure into finding some functions provided by libbsd.so; this causes problems later on because the compiled binaries don't link against this library. I'm a bit clueless why this happens, since I haven't found any relevant libraries which link against libbsd (in particular, libldns doesn't link against it). -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 12:30 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
Luis Ressel <aranea at aixah.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|ssh |Build system
--
You are receiving this mail because:
You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2017-Mar-31 13:34 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
--- Comment #6 from Luis Ressel <aranea at aixah.de> ---
Okay, I think I've figured this out. When I enable --with-ldns,
./configure adds the output of "ldns-config --libs" (that's
"-Wl,-O1
-Wl,--as-needed -L/usr/lib64 -lcrypto -lldns") to all of its
internal gcc calls.
On my system, libcrypto.so is provided by libressl and has some
internal symbols (strlcat, strlcpy, reallocarray, explicit_bzero,
timingsafe_bcmp and reallocarray) which configure searches for and
wouldn't otherwise have found. Thus, ssh uses libressl's version of
these functions instead of its own versions in the openbsd-compat/
folder. This somehow causes my segfault.
I have no idea how to fix this, though, since the autotools are a huge
blackbox to me. Could we prevent configure from adding ${ldns-config
--libs} to all its compiler calls (and instead only add it to the
ldns-related compiler calls)? This sounds like a messy hack, though...
--
You are receiving this mail because:
You are watching the assignee of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2019-Jul-19 05:35 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
Damien Miller <djm at mindrot.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |djm at mindrot.org
--- Comment #7 from Damien Miller <djm at mindrot.org> ---
I think, generally, if one of your dependencies is using a particular
version/vendor libcrypto.so then you have to use it everywhere and not
try to mix and match.
I.e. either recompile ldns against LibreSSL or compile OpenSSH against
the same libcrypto/headers as ldns
--
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2020-Jan-25 07:24 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
Damien Miller <djm at mindrot.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #8 from Damien Miller <djm at mindrot.org> ---
closing; OpenSSH can't detect conflicts in dependent libraries itself.
--
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2021-Mar-03 22:54 UTC
[Bug 2702] ssh compiled with --with-ldns segfaults during known_hosts parsing
https://bugzilla.mindrot.org/show_bug.cgi?id=2702
Damien Miller <djm at mindrot.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |CLOSED
--- Comment #9 from Damien Miller <djm at mindrot.org> ---
close bugs that were resolved in OpenSSH 8.5 release cycle
--
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
Possibly Parallel Threads
- [Bug 2593] New: List of forwarded connections not updated after cancellation
- [Bug 2603] New: Build with ldns and without kerberos support fails if ldns compiled with kerberos support
- sshfp/ldns still having issues in 7.6
- [Bug 2119] New: SSHFP with DNSSEC – no trust anchors given, validation always fails
- [Bug 2708] New: openssh: 7.5p1 update breaks ldns/sshfp