关键漏洞信息 增强 TWiki 防御 Shell 命令注入攻击 问题描述:TWiki 使用 Perl 的反引号操作符在多个地方,如果包含数据来自不受信的来源,可能导致安全问题,尤其是涉及 shell 元字符时。 历史漏洞修复:以往涉及 shell 命令注入的漏洞已在其他问题中修复。 - 文件附件问题中的元字符(参见TWiki Security Alert) - TWiki 搜索函数问题允许任意 Shell 命令执行(参见TWiki Security Alert) 修复措施:通过引入 TWiki::buildCommandLine 替代 Perl 反引号操作符,安全构建命令行参数向量,防止直接通过 shell 元字符执行任意 shell 命令。但若通过该接口调用脆弱的程序或脚本,仍可能间接导致命令注入。 相关链接与文件: - 补丁文件: - twiki-robustness-r3342.diff - Changelog 开发者建议:通过替换反引号操作符的代码形式,提高代码的健壮性。特别需要注意: - 使用 TWiki::readFromProcess 替代反引号操作符,确保参数中程序路径是硬编码或来自TWiki.cfg。 - 在包含多个文件的场景中使用分开的参数。 - 检查 $exit 错误码,是否将标准错误信息也重定向输出。 - 对 qx// 的使用进行检查。 - 确保Perl中open函数,尤其是创建子进程时的安全性。 - 使用TWiki::normalizeFileName处理文件名,防止路径穿越攻击。 - 考虑使用Perl safe 模块,但仍存在潜在安全隐患。 TWiki 插件受此影响表 ImageGalleryPlugin: 允许任何人创建或编辑图像画廊,可能会在主机服务器上执行任意 Shell 命令。 ConditionalPlugin: 已修复其安全模块问题,但仍需运维注意。 SpreadSheetPlugin: 此插件能保证传给 eval 的字符串都安全无害,但从安全工程角度来看不完美。 公告:与安全相关改动通知将在 security-announce 邮件列表 中发布。