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)。