github janmojzis/tinyssh 20260906

pre-release4 hours ago
  • tinyssh-convert: reject inconsistent Ed25519 key material in OpenSSH private-key files.
  • Fixed authorized_keys path validation to check the opened file and every directory in its canonical path, including symlink targets.
  • Added support for the sntrup761x25519-sha512 key-exchange algorithm name.
  • Documented the supported SSH algorithms in README.md and tinysshd(8).
  • Rejected all client-supplied environment variables for security reasons, extending the existing restriction for forced commands configured with -e to every session.
  • Expanded SSH protocol tests to cover packet parsing and framing, sequence numbers, key exchange and rekey, authentication, global requests, session channels, flow control and connection shutdown.
  • Consolidated all SSH, cryptographic, makekey and printkey tests under tests/ with a common build and runner; make test runs the complete standard suite while make test-ssh runs only tests requiring an SSH client, including forced-command environment isolation.
  • Added handling for SSH global requests and fixed rejected-packet sequence numbers; thanks to @dirkson for the bug report.
  • Fixed handling of SSH_MSG_IGNORE and SSH_MSG_DEBUG packets, including during strict key exchange; thanks to @Sven0nevS for the bug report.
  • Fixed several SSH protocol compliance issues, including minimum packet padding, none-authentication user validation, NUL bytes in text lines, data after disconnect and unknown channel types; thanks to @Zhaodl1 for the detailed report.
  • Fixed validation of public-key algorithm names.
  • Fixed handling of channel half-closes, child output EOF and zero-increment window adjustments.
  • Fixed PTY setup, ownership and cleanup error paths; thanks to @ishtiaqniloy for the bug report.
  • Fixed logging of terminal types.
  • Fixed self-pipe draining to prevent busy-polling.
  • Fixed close-on-exec handling when opening files and random-data sources.
  • Sanitised newlines in log messages.
  • Fixed base64 padding when encoding data at a non-zero buffer offset.
  • Fixed the fallback shell for accounts with an empty login shell.
  • Fixed cleanup of removed environment entries and removed unused or duplicate channel and packet state.
  • Stored client terminal dimensions as unsigned 32-bit values.
  • Fixed systemd variable substitution in the tinysshd(8) example.

Don't miss a new tinyssh release

NewReleases is sending notifications on new releases.