首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么flawfinder报告与fopen有关的问题?

为什么flawfinder报告与fopen有关的问题?
EN

Stack Overflow用户
提问于 2020-11-05 23:35:38
回答 1查看 433关注 0票数 2

我正在使用FlawFinder查找一段C代码中的潜在漏洞。

在分析中,该工具报告此问题:

代码语言:javascript
复制
file.c:54:  [2] (misc) fopen:
  Check when opening files - can an attacker redirect it (via symlinks),
  force the opening of special file type (e.g., device files), move things
  around to create a race condition, control its ancestors, or change its
  contents? (CWE-362).

相关的代码片段如下:

代码语言:javascript
复制
FILE *aFile = fopen("/tmp/tmpfile", "w");

虽然我知道并不是所有报告的问题都是错误或漏洞,但我想知道为什么会发生这种情况,以及我如何潜在地修复它。我试着在网上搜索,但我找到的都是关于竞态条件的,我不明白为什么这段代码会导致竞态条件。

此外,有没有替代fopen的替代函数

EN

回答 1

Stack Overflow用户

发布于 2020-11-05 23:59:13

正如它所说,在理论上,如果你在一个固定的位置使用一个文件,一个人可能会劫持这个文件,并使用你的exe权限来访问他不能访问的东西。我不会说这是一个很大的风险,因为它假设攻击者已经对你的系统进行了一定程度的控制,但是的,可能是一个漏洞。

解决方案:如果只需要一个临时文件,请使用tmpfile。临时文件在操作系统级别上受支持,它们在打开之前和关闭后将不存在,您不能真正重定向它们。

代码语言:javascript
复制
FILE *aFile = tmpfile();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64700401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档