最初发布于 reddit Dir-3040 ftp 问题
Dir-3040 最新固件 1.20b03,ftp 服务已启动并运行。Upnp、samba 已关闭。通过 usb2.0 端口将小文件上传到 usb 记忆棒时没有问题。上传 400mb 文件时,路由器在上传到 35% 时重新启动。尝试了几次,它正好在 35%。无法读取系统日志,因为它没有保存我需要的日志。考虑到电源问题,所以从我的另一台路由器更换了适配器,问题依然存在。由于固件加密,我无法访问 ftp 服务的源代码,因此我无法确认 ftp 服务中是否存在缓冲区溢出问题。
可以确认,直到读取整个文件后它才会写入 USB 闪存,这让我想到了缓冲区溢出。
有什么想法吗?
更新:发现它运行的服务器是stupid-ftpd,上次更新是12年前。可以确认135mb的文件大小足以让它崩溃。有很多地方会发生缓冲区溢出。
答案1
该问题很可能是软件算法导致在将文件读入 RAM 然后再将其写出时内存溢出。
您唯一的解决方案是将所有软件组件更新到最新版本,和/或通知 D-Link。您没有太多其他选择。
我发现了一个 D-Link 支持公告 包含针对“基于堆栈的溢出”的固件补丁。可以从链接下载,它可能会有所帮助(或没有帮助)。根据 D-Link 网站。
(注意:我在多个来源中发现了 DIR-3040 存在已知内存溢出漏洞的评论。)