Checkmarx OS_Access_Violation on Python os.enviro, parseargs



我在不同的python项目的源代码中的几个地方得到了一个OS_Access_Violation。它出现在这样的区域:

if __name__ == '__main__':
main(sys.argv[1:])

通常与以下内容相结合:

os.makedirs(args.output_dir, exist_ok=True)

以及

elif args.backend == "beefygoodness":
os.environ["MMMMM_TACOS"] = "beefygoodness"

'args = parser.parse_args(('

没有与此发现相关的描述,所以我不确定它的含义以及适当的补救措施是什么。我也不确定它是否指的是开发人员意义上的访问冲突(又名程序崩溃(,或者它是否是指对不应该访问的数据的引用,或者究竟是什么。

不幸的是,谷歌在这方面也没有帮助。

那么有谁知道这个神秘的高优先级发现指的是什么,以及正确的解决方法是什么?谢谢!

我还没有测试查询,但结果是有意义的。

您使用来自用户的输入,因此您不确定其完整性,并且可能是敌对的。

例如:

args[1:]:你期望有4个参数,但用户可以给你更多,并意外地影响系统。

现在,如果我正确理解你的问题,你说易受攻击的流从main调用开始,到os调用之一结束。

此时你应该明白,来自用户的未受保护的输入,用作os方法的参数。

如果用户将/root/pwd设置为目录输入怎么办?

或者,如果用户将恶意文本设置为环境变量,该怎么办?

我认为更好的解决方案是将参数/env变量保存为文件[以及从秘密存储库获取的凭据]并在运行时使用它们。

最新更新