漏洞概述 该漏洞涉及通过环境变量传递数据库备份/恢复标识符,以避免注入攻击。在Docker容器中,数据库名称、用户名和密码直接传递给 命令,导致外层shell扩展 、反引号和 在内部引号应用之前被处理,从而可能引发注入攻击。 影响范围 受影响组件: 和 受影响功能:数据库备份和恢复命令的构建 修复方案 1. 环境变量传递:将数据库名称、用户名和密码作为环境变量传递给容器,而不是直接传递给 命令。 2. 引用方式:在内部脚本中,这些值通过 引用,确保它们不会在内部引号应用之前被扩展。 3. 代码修改: - 在 中,修改了 、 、 、 和 函数,将数据库名称、用户名和密码作为环境变量传递。 - 在 中,修改了 、 、 、 和 函数,同样将数据库名称、用户名和密码作为环境变量传递。 POC代码 总结 该漏洞通过环境变量传递数据库备份/恢复标识符,避免了直接传递给 命令导致的注入攻击。修复方案包括修改相关函数,将数据库名称、用户名和密码作为环境变量传递,并在内部脚本中通过 引用这些值。