https://bugzilla.mindrot.org/show_bug.cgi?id=2619

            Bug ID: 2619
           Summary: infinite loop, 100% cpu use in ssh if ^Z is pressed at
                    password prompt
           Product: Portable OpenSSH
           Version: 7.3p1
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P5
         Component: ssh
          Assignee: [email protected]
          Reporter: [email protected]

Steps to reproduce:

1. either change or create a test login with /bin/sh as
   login shell (should work regarding shell)
2. "ssh user@localhost" and login
3. "sftp user@localhost" and press ^Z in the password
   prompt

A few times it will work. It depends a bit on what code
is being executed in the readpassphrase function, at
openbsd-compat/readpassphrase.c in the openssh code.

It has been verified that exec'ing again /bin/sh with
--posix before running sftp, or exporting the environment
variable POSIXLY_CORRECT before the "ssh user@localhost"
step prevents the problem.

So, while the problem appears to be kind of expected, it
is being reported in case it was not meant to happen.

Originally reported in Red Hat bugzilla [1]. This is rare race
condition, where we stuck in the code openbsd-compat/readpassphrase.c:

        while (tcsetattr(input, _T_FLUSH, &oterm) == -1 &&
            errno == EINTR)
            continue;

but it should not happen. The possible solution would be to check the
signal received in the handler, but I am not sure about most
appropriate fallback when the above fails.

More verbose analysis is in the above mentioned bug.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1218424

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
_______________________________________________
openssh-bugs mailing list
[email protected]
https://lists.mindrot.org/mailman/listinfo/openssh-bugs

Reply via email to