PKIX-SSH secure shell with
X.509 v3 certificate support
(archive 15.x-series)
Check the current version here!
- What's new:
- Bugs:
- unit test with ancient compilers
Some compilers (GCC 4.*) fail with error "error: redefinition of typedef 'sshsig_t'".
- properly check local forward cancellation
Incorrect check prevents error response.
- fixed a number of memory leaks
- match !final parse
make "Match !final" not trigger a second pass to parse client configuration
- Misc:
- unit test benchmark stub
- unify maximum size of monitor messages
- Xdialog and zenity passphrase wrappers
Mention born shell passphrase request wrappers based on Xdialog and zenity.
- fail gracefully if getgrouplist fails
- improve debug logging when client loads keys
- What's new:
- Features:
- provider managed identities
Store functionality works with keys obtained from OpenSSL 3x providers like nss, pkcs#11, tpm2.
- Bugs:
- fixed a number of memory leaks
- Misc:
- improved compatibility with vendor FIPS validated OpenSSL 1.1+
Version 16.0 rewrite implementation of key exchange methods.
This implementation uses generic structure (PKEY) to hold diverse types of asymmetric keys.
Vendor FIPS validated OpenSSL 1.1x does not allows some key algorithms when cryptographic library runs in FIPS mode.
Work-around is to exclude curve448-sha512 and curve25519-sha256 when daemon or client runs in FIPS mode.
New release automatically excludes them in FIPS enabled build with vendor specific cryptographic library.
- prevent out-of-bounds read if the "known hosts" file is truncated after the hostname
- properly use dirname() when checking a given path for security
- check maximum display number relative to offset
- What's new:
- Security:
- disable forwarding globally
Disable agent and X11 forwarding as well via global daemon option.
- Features:
- pass "ControlMaster no"
Pass "ControlMaster no" to client when invoked by secure copy or secure file transfer.
- SetEnv expansion
Allows expansion of tokens and environment variables in the "SetEnv" client option.
- without appinfo
Remove obsolete appinfo wrapper for Android.
The "addon" model is the only working model with post Android API 28 releases i.e., on Android 10 or newer.
- Bugs:
- sftp high-water when resuming
Set "high-water" when sftp upload is resumed.
Prevents bogus "server reordered ACKs" debug message.
- Misc:
- documentation
Documentation and manual page improvements.
- compatibility
Improve compatibility with cryptographic library and third party implementations.
- What's new:
- Security:
- add missing return codes
Add return codes in error paths when is checked public-key authentication, verified host key or processed custom certificate.
- Features:
- rewrite implementation of key exchange methods
Complete rewrite of implementation model using an up-to-date cryptographic API and supporting backward compatibility.
In addition are added key exchange methods "curve448-sha512" and diffie-hellman with 3k and 6k groups.
- rpm spec-files for recent OS releases
Adapt build rules to functionality supported in recent OS releases.
- wrap host-key generation on Android
- wtmp and Y2038
Add experimental wtmpdb support as Y2038 safe wtmp replacement.
- drop all keys
Make authentication agent drop all keys when it receives SIGUSR1.
- allows key-shielding to be enabled at build time
- allow wildcard patterns for daemon directive AuthorizedPrincipalsFile
- allow wildcard patterns for daemon directive AuthorizedKeysFile
- add Invalid-User condition to daemon Match block
- add daemon option "RefuseConnection"
- add client option VersionAddendum uses same as existing daemon option
- token expand for client "include" directive
- log information for current system at startup
- Bugs:
- avoid bus-error if logging in privileged process fail
- prevent integer overflow in X11 port handling
- consistent "progress" display in secure file transfer
- build-in ML-KEM-768 implementation with corrections for big-endian systems
- require control-escape character sequences passed via the '-e ^x' command line to be exactly two characters long
- write proper "user specific delay" log message
- Misc:
- refactor loadable modules support
Separate UI and STORE2 method to allow more easily to exclude engine support.
- fingerprint and carriage return
Properly output fingerprint of specified public key if file contains carriage return characters.
- "new passphrase" and "passphrase" arguments
Precise how authentication key utility uses "new passphrase" and "passphrase" arguments.
- unify version debug output printed by client and daemon
- remove "side effects" from pselect compatibility implementation
Stateless "pselect" compatibility implementation.
- relax check for valid domain name
Allow underscore as first character.
- prohibit comma in hostnames
- What's new:
- Features:
- notify systemd on listen and reload
Also support "systemd" service file.
- up to date ssh-copy-id
Synchronise ssh-copy-id "install script" with upstream.
- update the Streamlined NTRU Prime code
Switch from "ref" to faster "compact" implementation.
Use sntrup761x25519-sha512 key exchange method as alias to existing one hybrid key exchange algorithm now has an IANA-assigned name.
- ML-KEM768 key exchange
Add experimental support for hybrid post-quantum key exchange ML-KEM768 (coupled with X25519).
- randomise grace login time (up to 4 extra seconds)
- place shielded keys into memory excluded from a core dump
Note key-shielding is not enabled by default. Limited to Linux and *BSD.
- add daemon option "RefuseConnection"
- Bugs:
- correct proxy multiplexing bug
If a mux started with ControlPersist then later has a forwarding added using mux proxy connection and the forwarding was used,
then when the mux proxy session terminates, the mux master process will send a channel close to the server with a bad channel id and crash the connection.
This was caused by stupidly reusing c->remote_id for multiplexing channel associations.
- apply authorized keys options only when signature verification pass
Prevents key options to be applied to subsequent keys listed in authorized keys.
- fix memory leak when is processed daemon subsystem configuration
- Misc:
- consistently look for the last @ in the match user pattern
This makes it possible to use usernames that contain '@' characters.
- allow short key names only in key generation utility
Be more strict when is parsed key time name.
- restore daemon functionality on Android
Copy more session specific user variables.
Do not check daemon for absolute path.
Do not drop supplementary groups as is not allowed by selinux rules.
- modernise key generation
Use "keygen" functionality in program code if build is with OpenSSL 1.1 or newer.
- documentation
Documentation and manual page improvements.
- code and regression tests clean-up
Includes performance improvements in rekey regression test.
- What's new:
- Security:
- prefer sigaction()
To send a signal in alarm signal handler is used sigaction() if available.
This avoids logging in ssh_signal() done on error path.
Note sigaction() should be available on all modern OS-es.
- Features:
- enhance login class based checks
Added function checks for any host restrictions and
checks to see that a given time value is within allowed times.
Remark: FreeBSD functionality.
- only "addon" model on Android
Link only with application wrapper library.
Stop to use application information library.
Remark: This allows application like SecureBox to stop to share "user id" with terminal application.
Also, with separate id terminal application has only read only access to secure shell configuration.
- Bugs:
- sftp and very long symbolic link
Avoid silent truncation in sftp server readlink processing.
- Misc:
- wrap rename
Stop to wrap rename() for Android builds.
It was added to allow key generation utility to create host-keys.
With new "addon" model this is application responsibility.
- autoconf 2.72
Suppress Android large file for 32-bit platforms as well if bootstrap uses autoconf 2.72.
- path to ssh utility
Revise construction and how is used path to ssh utility is secure copy and file transfer programs.
Note on Android is construction uses path running utility and this avoids communication with application.
- documentation
Documentation and manual page improvements.
Note information related to DSA algorithms and keys is excluded from manual pages.
- What's new:
- Security:
- disable again logging in alarm handler
Race condition could lead to code execution on some C libraries.
Affected PKIX-SSH 13.3.2-15.0.
- Features:
- SSH_AUTH_INFO_0 and PAM
Export SSH_AUTH_INFO_0 in PAM password authentication method.
- askpass on wayland
Enable secsh "askpass" on wayland display as well.
- Bugs:
- properly implement sftp home-directory extension
It always returned the current user's home directory contrary to the spec.
- utmpx login
Use appropriate variable to record "utmpx" login.
- sftp-prompt
flush stdout after output of "sftp>" prompt
- Misc:
- askpass scripts
More secsh askpass scripts based on dialog programs like xdialog and zenity.
- use terminal wrappers to open files
Reserved for "TermOne Plus"(Android) generic "addon" command interface.
- print specified user in sftp connections
Make connection message consistent regardless of whether how destination is specified on command line.
- simplify client quit message handling
Also write quit message before to send disconnect packet.
- promote connection-closed messages from verbose to information level
Used if the client does not send a "disconnect" message.
- quiet mode when utility gather public keys from servers
Do not emit comment lines with hostname and SSH protocol banner.
- never close stdin in gather public keys utility
- add daemon option PamServiceName
Reserved for future.
- documentation
Many documentation and manual page improvements.
- What's new:
- Features:
- build without DSA keys
A configuration option could be used to enable public algorithms based on DSA keys.
Also regression tests prefer Intermediate CA with EC keys if build is with OpenSSL 1.1+.
- use poll for main loops
Convert daemon and client main loop from pselect to ppoll.
- stricter handling of channel window limits
This makes client and server more strict in handling non-compliant peers that send more data than the advertised channel window allows. Previously the additional data would be silently discarded. This change will cause client or server to terminate the connection if the channel window is exceeded by more than a small grace allowance (~10%).
- client as login shell
Manage case when terminal program executes secsh client as login shell.
- "global" ChannelTimeout
Add a "global" ChannelTimeout to client and daemon.
- Bugs:
- non-completed connection
Manage non-completed connection in channel post processing.
- long messages
Ensure eof on long messages to standard error.
- space in configuration directive
Do not append space if subsystem lacks arguments.
- parse single string array options separately
In match block allows option override where first argument could be a specific keyword.
- signal logs
Avoid logging in ssh agent signal handler.
- Misc:
- harden madvise rules in Linux seccomp sandbox
Linux madvise(2) syscalls support quite a number of flags and is not expected that secsh daemon to use them.
This should exclude kernel attack surface by filtering madvise arguments.
- build configuration
Use autoconf macro for fgrep. Note egrep and fgrep commands have been deprecated since 2007.
Command is standardized by POSIX with -E and -F flags.
Use plain apostrophes in configuration quotes. Follow autoconf 2.72 changes.
- unlimited argument name in configuration
Do not restrict number of canonical domains and CNAMEs when canonicalizing hostnames.
- manuals
Documentation and usage corrections and improvements.
- force use of ssh askpass for pkcs#11 tests
Avoid to run a program in a new session i.e., replaces perl based setsid functionality.
- change pkcs#11 module used in tests
Use SoftHSM2 module in agent pkcs#11 regression tests.
Also test EC key as well.
- add certificate tests with pkcs#11 token and pkcs#11 engine
Based on SoftHSM2 module. Test are not enabled by default as depend on many external packages.
- certificate regression tests
Prefer SHA256 digest to create test certificates. Activated if build is with OpenSSL 1.1+.
Test with 2048-bit RSA keys.
In hostkey algorithm tests use only RSA based Intermediate CA.
- interoperability tests
Improve conch and putty interoperability tests.
Added tests with dropbear client.
- SHA1 signatures in regression tests
Enable SHA1 signatures in regression tests if deprecated by system policy.
News archives:
|