mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-21 10:19:04 +00:00
![Ed Maste](/assets/img/avatar_default.png)
This release fixes a number of security bugs and has minor new features and bug fixes. Security fixes, from the release notes (https://www.openssh.com/txt/release-9.3): This release contains fixes for a security problem and a memory safety problem. The memory safety problem is not believed to be exploitable, but we report most network-reachable memory faults as security bugs. * ssh-add(1): when adding smartcard keys to ssh-agent(1) with the per-hop destination constraints (ssh-add -h ...) added in OpenSSH 8.9, a logic error prevented the constraints from being communicated to the agent. This resulted in the keys being added without constraints. The common cases of non-smartcard keys and keys without destination constraints are unaffected. This problem was reported by Luci Stanescu. * ssh(1): Portable OpenSSH provides an implementation of the getrrsetbyname(3) function if the standard library does not provide it, for use by the VerifyHostKeyDNS feature. A specifically crafted DNS response could cause this function to perform an out-of-bounds read of adjacent stack data, but this condition does not appear to be exploitable beyond denial-of- service to the ssh(1) client. The getrrsetbyname(3) replacement is only included if the system's standard library lacks this function and portable OpenSSH was not compiled with the ldns library (--with-ldns). getrrsetbyname(3) is only invoked if using VerifyHostKeyDNS to fetch SSHFP records. This problem was found by the Coverity static analyzer. Sponsored by: The FreeBSD Foundation
36 lines
1.2 KiB
Bash
36 lines
1.2 KiB
Bash
# $OpenBSD: knownhosts.sh,v 1.2 2023/02/09 09:55:33 dtucker Exp $
|
|
# Placed in the Public Domain.
|
|
|
|
tid="known hosts"
|
|
|
|
opts="-F $OBJ/ssh_proxy"
|
|
|
|
trace "test initial connection"
|
|
${SSH} $opts somehost true || fail "initial connection"
|
|
|
|
trace "learn hashed known host"
|
|
>$OBJ/known_hosts
|
|
${SSH} -ohashknownhosts=yes -o stricthostkeychecking=no $opts somehost true \
|
|
|| fail "learn hashed known_hosts"
|
|
|
|
trace "test hashed known hosts"
|
|
${SSH} $opts somehost true || fail "reconnect with hashed known hosts"
|
|
|
|
trace "no newline at end of known_hosts"
|
|
printf "something" >$OBJ/known_hosts
|
|
${SSH} $opts -ostricthostkeychecking=no somehost true \
|
|
|| fail "hostkey update, missing newline, no strict"
|
|
${SSH} $opts -ostricthostkeychecking=yes somehost true \
|
|
|| fail "reconnect after adding with missing newline"
|
|
|
|
trace "newline at end of known_hosts"
|
|
printf "something\n" >$OBJ/known_hosts
|
|
${SSH} $opts -ostricthostkeychecking=no somehost true \
|
|
|| fail "hostkey update, newline, no strict"
|
|
${SSH} $opts -ostricthostkeychecking=yes somehost true \
|
|
|| fail "reconnect after adding without missing newline"
|
|
lines=`wc -l <$OBJ/known_hosts`
|
|
if [ $lines -ne 2 ]; then
|
|
fail "expected 2 lines in known_hosts, found $lines"
|
|
fi
|