漏洞概述 该漏洞涉及在检查命令黑名单之前,未正确剥离环境变量赋值的问题。这导致某些命令(如 )在执行时,即使其环境变量赋值部分被黑名单阻止,命令本身仍可能被执行。 影响范围 受影响命令:任何带有环境变量赋值的命令,特别是那些在黑名单中的命令(如 )。 潜在风险:攻击者可能通过构造带有环境变量赋值的恶意命令,绕过黑名单限制,执行危险操作。 修复方案 1. 代码修改: - 在 文件中,添加了对命令字符串的预处理,以剥离环境变量赋值。 - 新增函数 ,用于移除命令中的环境变量赋值部分。 2. 测试用例: - 在 中,增加了多个测试用例,验证修复后的行为: - 环境变量赋值命令应被正确拒绝。 - 非环境变量赋值命令应正常执行。 - 多行命令中的环境变量赋值也应被正确处理。 3. 具体代码变更: - 在 中,实现了 函数,用于移除环境变量赋值。 - 在 中,增加了相应的单元测试。 POC代码 以下是修复后的关键代码片段: 总结 该修复通过预处理命令字符串,确保在执行黑名单检查前,环境变量赋值部分被正确剥离,从而防止恶意命令绕过黑名单限制。