| ID: 560 类型:变量 | 状态:草稿 |
描述
该产品调用umask()时使用的参数不正确,该参数被指定为chmod()的参数。
相关视图
与“研究层面”视图(CWE-1000)相关
与“开发层面”视图(CWE-699)相关
引入模式
| 阶段 | 说明 |
| 实现 |
应用平台
语言
C (出现的可能性不确定)
后果
| 范围 | 冲击 | 可能性 |
| 保密性 | 技术冲击: 读文件或者目录; 修改文件或目录; 越过保护机制 |
应对措施
| 阶段: 实现 使用umask()时候参数要保证正确 |
| 阶段: 测试 如果怀疑umask()被误用,可以使用grep来发现umask()的调用实例。 |
种属
| 关系 | 类型 | ID | 名称 |
| 属于 | 946 |
说明
其它
umask()手册页以错误语句开头:“umask将umask设置为mask&0777”,尽管此行为最好与chmod()的用法一致,其中用户提供的参数指定要在指定文件上启用的位,但umask()的行为实际上与之相反:umask()将umask设置为~mask&0777。umask()手册页继续描述umask()的正确用法:“open()使用umask为新创建的文件设置初始文件权限。具体来说,umask中的权限从模式参数关闭到打开(2)(例如,常见的umask默认值022会导致使用权限0666创建新文件,而在通常情况下,该模式指定为0666)。
该博客指出产品调用umask()时参数使用不正确,此参数还被指定为chmod()的参数。umask()手册页开头语句有误,其实际行为与描述相反,还介绍了umask()为新创建文件设置初始权限的正确用法,涉及C语言。

被折叠的 条评论
为什么被折叠?



