我发现了此漏洞CVE-2021-4189(https://bugzilla.redhat.com/show_bug.cgi?id=2036020)在python 中的ftblib库中
CVE描述:在Python中发现了一个缺陷,特别是在PASV(被动(模式下的FTP(文件传输协议(客户端库中。问题是FTP客户端默认情况下如何从PASV响应中信任主机。此漏洞使攻击者能够设置恶意FTP服务器,诱使FTP客户端连接回给定的IP地址和端口。此漏洞可能导致FTP客户端扫描端口,否则这是不可能的。
现在我很困惑这个漏洞是否影响了我在被动模式下使用ftp上传的代码,或者我应该使用ftp.set_pasv(False(只使用主动模式
# Init Connection
ftp = FTP()
ftp.connect(FTP_ADDRESS, FTP_PORT)
ftp.login(*FTP_CREDENTIALS)
是的,如果您还没有更新到Python的固定版本,您的代码将很容易受到攻击。如果它正在使用IPv4(PASV
(进行数据连接(可能会这样做(。
不过,我不建议切换到活动模式,因为这可能会给你带来问题。
相反,以与ftplib修复相同的方式修复代码——忽略FTP.makepasv
中服务器返回的IP。
请参阅我对以下问题的回答中的SmartFTP
实现:
无法使用ftplib列出FTP目录,但FTP客户端可以使用
话虽如此,我认为该漏洞并不严重,甚至不需要担心——除非您的代码连接到随机FTP服务器