在11月的第一天,OpenSSL就发布3.0.7版本,修补两个具有高风险的漏洞,而热门的C/C++函数库管理工具Vcpkg上也已经有修补程序,因此有使用Vcpkg的开发者,当应用程序中包含3.0.0到3.0.6各版本OpenSSL,也可通过Vcpkg进行修补。
OpenSSL这两个漏洞分别是具有重大风险的CVE-2022-3602漏洞,以及高度风险的CVE-2022-3786漏洞。CVE-2022-3602可能让攻击者执行远程程序攻击,而CVE-2022-3786虽不会引发远程程序攻击,却足以造成服务阻断,因此微软敦促开发者尽快升级。
微软提醒,即便开发者的项目没有直接使用OpenSSL,但是OpenSSL仍可能是应用程序相依关系中的一部分,这是因为相依项目可能会递移相依于OpenSSL,因此Vcpkg就会自动安装OpenSSL,像是Azure C++ SDK便会递移相依OpenSSL,因此用户也应该验证系统上OpenSSL的版本。
无论Vcpkg用户是以命令行安装函数库,还是Vcpkg.json清单在构建期间安装相依项目,微软建议,开发者可以先以指令列出所有OpenSSL函数库版本,查看需要更新的部分。
当开发者的Vcpkg相依项目不使用Vcpkg.json清单,则表示是使用典型的命令行模式,用户可以选择一次升级所有相依项目,而通过将Vcpkg git repo本地副本更新到最新版本是最快的解法,但用户也可以选择只更新OpenSSL,不更新其他内容。
对于通过清单安装OpenSSL的用户,就只需要更新Vcpkg.json文件就可以配置不同的OpenSSL版本,官方提到,建议不要一次更新一个,而是一次更新所有开源相依项目,这样才能避免冲突,防止相依关系出现菱形相依的问题。