El código actual en mi proyecto se muestra a continuación y Veracode informa que hay una inyección de comando del sistema operativo
filename = Regex.Replace(filename, "[^a-zA-Z0-9_]", "_") & ".svg"
ProcessStartInfo startInfo = default(ProcessStartInfo);
Process pStart = new Process();
startInfo = new ProcessStartInfo(myExecutedFilePath, "\"" + filename + "\" --export-pdf=\"" + filename + "\""); //OS command injection raises at this line
pStart.StartInfo = startInfo;
pStart.Start();
pStart.WaitForExit();
Por lo tanto, investigo la solución para resolver este problema de OWASP y Roslyn Security Guard.
Y aquí está mi código después de modificarlo en función de las publicaciones.
filename = Regex.Replace(filename, "[^a-zA-Z0-9_]", "_") & ".svg"
ProcessStartInfo startInfo = default(ProcessStartInfo);
Process pStart = new Process();
startInfo = new ProcessStartInfo();
startInfo.FileName = myExecutedFilePath;
startInfo.Arguments = "\"" + filename + "\" --export-pdf=\"" + filename + "\""; //Veracode still reports the issue at this line
pStart.StartInfo = startInfo;
pStart.Start();
pStart.WaitForExit();
PERO, Veracode aún informa la inyección de comandos del sistema operativo.
Así que mis preocupaciones aquí son:
-
¿He aplicado la solución correcta para resolver la inyección de comandos del sistema operativo en este caso?
-
O, ¿Debo proponer mitigación para ello?