Win32-OpenSSH
Win32-OpenSSH copied to clipboard
Connection is stuck when time on SSH Server is set after the Year-2038 Problem
Prerequisites
- [X] Write a descriptive title.
- [X] Make sure you are able to repro it on the latest version
- [X] Search the existing issues.
Steps to reproduce
When I start the SSH Server on a machine where the date is set after the Year-2038 Problem (2038-01-19 03:14:07 UTC) the connection is stuck. On the client I'm asked for the password to login, the login is successful ("Authentication succeeded" in the log), but the connection then freezes and the client can't be stopped using CTRL+C but has to be killed by closing cmd/powershell.
I once could reproduce it on a device where I got the additional log output that the channel unpauses in over 2 billion seconds. At the time I checked and the exact second where the log message was written as unix timestamp, added to the over 2 billion seconds from the log was exactly 2^32. Unfortunately, I no longer have access to this device and I'm not sure which version of the SSH Server it hat exactly, but it was installed via the Windows Optional Features.
Attached I have the logs from the client, started with -vvv and from the server with LogLevel DEBUG3.
Expected behavior
The connection should work as usual.
Actual behavior
The connection freezes, no shell is opened at the client and the client can't be exited using CTRL + C, but has to be killed by closing cmd/powershell.
Error details
No response
Environment data
Name Value
---- -----
PSVersion 5.1.22621.2506
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.2506
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Version
OpenSSH_for_Windows_9.6p1, LibreSSL 3.8.2 (built from commit 661803c9ec4d7dee6574eb6ff0c85b2b7006edb1)
Visuals
No response
Do you have a *nix machine you can replicate this issue on?
I tried running the SSH-Server on Ubuntu 22.04.4 LTS (OpenSSH_8.9p1 Ubuntu-3ubuntu0.7, OpenSSL 3.0.2 15 Mar 2022). If I set the time there e.g. to 2039-01-01 and connect via SSH the connection works as expected.
I also tried installing the Bitvise SSH Server (9.37) on Windows, there the connection also works as expected with the time set to the year 2039.
So I can only reproduce this issue on Windows with the OpenSSH Server.
Is there any update/workaround for this bug or maybe a planned timeline when this will be done?
Potential fix seems to be two parts, one on LibreSSL, other in openssh-portable
https://github.com/PowerShell/LibreSSL/pull/30 https://github.com/PowerShell/openssh-portable/pull/738
@maertendMSFT @tgauth Can you check the previous push request, those are picked up from the fix on LibreSSL and should fix the issue. Any possibility of integrating those changes?
@maertendMSFT @tgauth Can you check the previous push request, those are picked up from the fix on LibreSSL and should fix the issue. Any possibility of integrating those changes?
Yes! The PowerShell/LibreSSL repo is just a mirror of https://github.com/libressl/portable. Both PowerShell/LibreSSL and https://github.com/PowerShell/openssh-portable/pull/738 will be updated before the next Win32-OpenSSH release.
closing since https://github.com/PowerShell/openssh-portable/pull/738 has been merged