ProcessBuilder造成严重的声纳漏洞

时间:2018-07-13 13:27:38

标签: java sonarqube processbuilder

我正在尝试使用ProcessBuilder在Java上执行cmd命令。这是我正在使用的代码:

        ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", scriptPath, pathDirectory, fileName);
    Process process = processBuilder.start();

但是声纳分析产生以下错误:

enter image description here

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我确认您应该信任RSPEC-2076的描述,并且应该清除可能由用户输入污染的变量。它可以是三个变量之一:scriptPath,pathDirectory,fileName。 SonarQube的最新版本显示了哪个变量可以被用户污染并且必须进行清理。清理的一种方法是检查将要执行的命令是否是白名单的一部分,如果检测到可疑的意外命令,则停止处理。

另请参阅https://wiki.sei.cmu.edu/confluence/display/java/IDS07-J.+Sanitize+untrusted+data+passed+to+the+Runtime.exec%28%29+method