OpenSSH 8.0 发布,修复 SCP 存在 35 年的漏洞

  OpenSSH 8.0 发布了,此版本缓解了 scp(1) 工具和协议漏洞 CVE-2019-6111,该漏洞中最主要的地方是 SCP 客户端无法验证 SCP 服务器返回的对象是否与请求的东西一致,而该问题可以追溯到 SCP 的基础——RCP 协议(Remote file Copy Protocol),它允许服务器控制发送的文件,那么结合客户端无法验证请求与实际返回的对象是否一致这一弱点,攻击者就可以采用中间人或直接操纵 SCP 服务器的方法,覆写客户端用户的 .bash_aliases 文件,一旦用户启用 Shell,则执行文件中的恶意代码。

  该问题从 1983 年起已经存在了 35 年。受影响的客户端包括 OpenSSH scp、PuTTY PSCP 与 WinSCP scp mode。

  将文件从远程系统复制到本地目录时,SCP 客户端无法验证 SCP 服务器返回的对象是否与请求的东西一致,这使得攻击者可以使用恶意服务器控制的内容创建或破坏本地文件。

  OpenSSH 8.0 的缓解措施添加了客户端检查,查看从服务器发送的文件名与命令行请求是否匹配。

  SCP 协议已经过时,不灵活且不易修复,OpenSSH 官方建议使用更现代的协议进行文件传输,如 sftp 和 rsync。

此版本新特性包括:

  • ssh(1)、ssh-agent(1)、ssh-add(1):PKCS#11 token 中添加对 ECDSA 密钥的支持。
  • ssh(1)、sshd(8):基于 Streamlined NTRU Prime 4591^761 和 X25519 的组合,添加实验性量子计算抗性密钥交换方法。
  • ssh-keygen(1):将默认 RSA 密钥大小增加到 3072 位。
  • ssh(1):允许“PKCS11Provider = none”覆盖 ssh_config 中 PKCS11Provider 指令的后续实例。
  • ssh(1):提示是否录制新主机密钥时,输入密钥指纹作为“yes”。
  • ssh-keygen(1):在单个命令行调用上签名多个证书时,允许自动递增证书序列号。
  • scp(1)、sftp(1):接受 -J 选项作为 scp 和 sftp 命令行上 ProxyJump 的别名。
  • ssh-agent(1)、ssh-pkcs11-helper(8)、ssh-add(1):接受“-v”命令行标志以增加输出的详细程度;将详细标志传递给子进程,例如从 ssh-agent 启动的 ssh-pkcs11-helper。
  • ssh-add(1):添加“-T”选项以允许通过执行签名和验证来测试代理中的密钥是否可用。
  • sshd(8):在 PAM 环境中暴露 $SSH_CONNECTION。

完整更新内容查看更新日志:

发表评论

评论已关闭。

相关文章