PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name “PuTTY” has no official meaning.
PuTTY was originally written for Microsoft Windows, but it has been ported to various other operating systems. Official ports are available for some Unix-like platforms, with work-in-progress ports to Classic Mac OS and macOS, and unofficial ports have been contributed to platforms such as Symbian, Windows Mobile and Windows Phone.
PuTTY was written and is maintained primarily by Simon Tatham.PuTTY supports many variations on the secure remote terminal, and provides user control over the SSH encryption key and protocol version, alternate ciphers such as AES, 3DES, Arcfour, Blowfish, DES, and Public-key authentication. PuTTY supports SSO through GSSAPI, including user provided GSSAPI DLLs. It also can emulate control sequences from xterm, VT220, VT102 or ECMA-48 terminal emulation, and allows local, remote, or dynamic port forwarding with SSH (including X11 forwarding). The network communication layer supports IPv6, and the SSH protocol supports the firstname.lastname@example.org delayed compression scheme. It can also be used with local serial port connections.
PuTTY comes bundled with command-line SCP and SFTP clients, called “pscp” and “psftp” respectively, and plink, a command-line connection tool, used for non-interactive sessions.
PuTTY does not support session tabs directly, but many wrappers are available that do.
Vulnerabilities fixed in this release include:
– A malicious SSH-1 server could trigger a buffer overrun by sending extremely short RSA keys, or certain bad packet length fields. Either of these could happen before host key verification, so even
if you trust the server you *intended* to connect to, you would still be at risk.
(However, the SSH-1 protocol is obsolete, and recent versions of PuTTY do not try it by default, so you are only at risk if you work with old servers and have explicitly configured SSH-1.)
– If a malicious process found a way to impersonate Pageant, then it could cause an integer overflow in any of the SSH client tools (PuTTY, Plink, PSCP, PSFTP) which accessed the malicious Pageant.
Other security-related bug fixes include:
– The ‘trust sigil’ system introduced in PuTTY 0.71 to protect against server spoofing attacks had multiple bugs. Trust sigils were not turned off after login in the SSH-1 and Rlogin protocols, and not turned back on if you used the Restart Session command. Both are now fixed.
Other bug fixes include:
– Kerberos key exchange could crash at the start of an SSH session in the presence of a third-party Windows provider such as MIT Kerberos for Windows, and could also crash if the server sent an ordinary SSH host key as part of the Kerberos exchange.
– In SSH-2 keyboard-interactive authentication, one of the message fields sent by the server (namely the ‘instructions’ message) was accidentally never displayed to the user.
– When using SSH-2 connection sharing, pasting text into a downstream PuTTY window that included a line longer than 16Kb could cause that window’s connection to be closed.
– When using PSCP in old-fashioned SCP mode, downloading files specified by a wildcard could cause a newline character to be appended to the downloaded file names. Also, using the -p option to preserve file times failed with a spurious error message.
– On Windows, the numeric keypad key that should generate ‘.’ or ‘,’ depending on keyboard layout was always generating ‘.’.
– RSA keys generated by PuTTYgen could be 1 bit shorter than requested. (Harmless, but a regression in 0.71 compared to 0.70.)
PuTTY is copyright 1997-2019 Simon Tatham.