When enumerating resident keys, encountering a credential with an
unsupported COSE key type (not ES256 or EdDSA) caused the entire
enumeration to abort via goto out, discarding all valid keys.
Move the key type check before the per-credential allocation so
unsupported types can be skipped with continue instead. This
preserves all valid resident keys on the token.
Patch from Akhilesh Arora via GHPR657
OpenBSD-Commit-ID: b344a44ff97d26faf099b8e0cad72ad1e793ac0f
channels; previously we were throwing away the events we computed if the
channel had a c->sock distinct from it's other read and write fds.
Fortunately, it appears that this case happens rarely, if ever.
Reported by Darafei Praliaskouski via GHPR660
OpenBSD-Commit-ID: d3f483b7919946c5649e8c697d5b927af35aac4b
better; leave a zero placeholder variable so we don't have #ifdef around
their absence elsehwere in the tree
OpenBSD-Commit-ID: 9601de2c67042aacb0ea12ca424e67c092fa7801
directives with capitalisation (previously they were all lowercase), so make
the tests that consume them insensitive to case
OpenBSD-Regress-ID: 9a81d8501b8b8fc1c1a0d268d4cc91cbb19668f5
comparison test of the new NFA-based implementation against the original one
for all possible combinations of short inputs and patterns constructed from a
small dictionary of possibilities.
OpenBSD-Regress-ID: a18e86c95afb6243ac270468f5dd0ab4a78c8074
This generates much of the initialisation, defaults and keyword table
code from a set of macros rather than hand coding them. These same
macros are also used to generate serialisation and deserialisation
code.
The macros are admittedly ugly but have the advantage of forcing a
good degree of consistency across places that need to stay in sync
with each other.
The new de/serialisation code is used to pass configurations across
the various sshd-* process boundaries. This removes the need to pass
around raw text configurations that need to be re-parsed as well as
eliminating some raw pointer leakage across the processes where
structures were previously clumsily serialised.
feedback/ok markus@
OpenBSD-Commit-ID: 9a5109a480637e08c290eeb82aa8ef2ca7e848ce
lookup to force some more uniqueness in queries to reduce the likelihood of
spoofing attacks succeeding.
Normally this should be hidden from the user by the resolver, but
in some cases it can leak through. When it does, it can mess up
ssh's CanonicalizePermittedCNAMEs.
Fix this by forcing the name we received from the system resolver to
lowercase.
bz3966, report and fix by Martin D Kealey
[1] https://datatracker.ietf.org/doc/html/draft-vixie-dnsext-dns0x20-00
OpenBSD-Commit-ID: e0b300d3b3af289e053d928380af71949f95bfb0
to the same inode simultaneously; reported by Qifan Zhang of Palo Alto
Networks; ok markus@
OpenBSD-Commit-ID: 94ceb85146d92dbc1289c55d308498d5f56f274a
1) if a server sent an empty reply to a SSH2_FXP_REALPATH request
2) if a batch command used the full 2048 byte buffer but ended in a
literal backslash character
Both reported by Zhenpeng (Leo) Lin from depthfirst
ok markus@
OpenBSD-Commit-ID: d1ccc1f5a6eb109065ce8a552fea8e502381ce59
the peer sends non-KEX messages during a key re-exchange.
Previously an evil peer could continue sending non-KEX messages
without penalty, causing memory to be wasted up until the
connection terminated or the server/client hit a OOM limit.
reported by Marko Jevtic; ok markus@
OpenBSD-Commit-ID: 8937f0f2096156f5c68ae2dce77956373589d757
the unprivileged preauth sshd-auth process to the user-privileged postauth
sshd-session process.
These are harmless unless an attacker had an exploit for sshd-auth
in which case they could be used for post-auth memory DoS or to
crash you own session in a new and exciting way.
Reported by bylee3 and Kayky Vinicius
ok markus
OpenBSD-Commit-ID: 214e256904a4ae4f83d2083096796c9689c1d7b5
constraints
Along with the match_pattern() performance change that was just
committed this avoids a denial-of-service where an agent client could
waste CPU on an agent by sending user constraints with lots of
wildcards.
Reported by Huzaifa Sidhpurwala of Redhat
ok markus
OpenBSD-Commit-ID: 0483817f1a8accf4dbff42b7073ee4d119105d71
implementation that uses a NFA for matching. This avoids the exponential
worst- case behaviour for the old implementation.
ok markus@
OpenBSD-Commit-ID: fc6b75a52f4c0acb52b7900658c8d25ff873cbae
There is nothing wrong with times before the epoch, even -1, so use the
idiom recently added to the CAVEATS section to figure out whether there
was an error in the timegm() or mktime() calls.
We should sweep the tree for this. If anyone is bored, feel free to beat
me to it...
ok deraadt djm
OpenBSD-Commit-ID: e2b1721966dc782e776db5d6cfb18958534f9d4b
information about session contents (cf. the CRIME attack on TLS) if a
connection allows attacker- controlled traffic over it alongside trused
traffic. This might occur in some forwarding scenarios.
with deraadt@
OpenBSD-Commit-ID: 03d145cdbf3a8713e8309724b5c9a9b76c317749
warning
The sizes of sigma[] and tau[] aren't used, so include a trailing NUL and
thereby avoid upsetting modern compilers about use of dangerous, valid C.
ok deraadt djm
OpenBSD-Commit-ID: 030a71ff16bb1e6135170c6507bc558eabe7345c
/ commandline arguments as valid.
Identified by SUSE and reported by Camila Camargo de Matos
ok deraadt@ tb@
OpenBSD-Commit-ID: 45d51154f2418549e08b80fa33df6c6532046054
To hit this, the user must be using a PEM style private key with no
corresponding .pub key adjacent to it.
OpenBSD-Commit-ID: b7150acc5322fa33f21491834d9471fbe3d30f20
revision 1.15
date: 2026/05/09 01:54:51; author: tb; state: Exp; lines: +14 -13; commitid: zZPVUWycKAslGJtO;
Avoid recursive cleanup in getrrsetbyname()
Instead of freeing struct dns_query and struct dns_rr by walking the
linked lists recursively, use a simple loop. This avoids a possible
stack exhaustion unlikely to be reachable with the limits modern
resolvers impose.
From Dhiraj Mishra