2019年,checkpoint研究人员发现了Remote Desktop Protocol (RDP) 客户端中的安全漏洞——CVE-2019-0887。研究人员在测试MacOS RDP客户端过程中发现不仅可以绕过微软的发布的补丁,还可以绕过任意的路径规范化检查。
CVE-2019-0887补丁
微软2019年就发布了CVE-2019-0887漏洞的安全补丁。该补丁非常简单,根据最佳实践,基于PathCchCanonicalize函数加入了一个验证检查,如图1所示:
图 1: PathCchCanonicalize用于计算文件名的规范化形式
如果成功,规范化的输出就会与原始文件名进行比较,如果不匹配就会产生错误。也就是说如果文件名中含有. 或 ..这样的字符串,当转化为规范化形式时,有效性检查就会失败。但是该补丁确实修复了路径遍历漏洞。
MacOS RDP 客户端
研究人员Chris发现CVE-2019-0887漏洞也可以应用于Microsoft RDP客户端。Checkpoint研究人员就对macOS RDP客户端进行了测试,发现漏洞利用可以绕过微软发布的补丁。
PathCchCanonicalize
研究人员随后对微软的主路径规范化函数——PathCchCanonicalize进行了简单的测试。如图2所示: