将系统数据暴露给未授权的控制范围¶
ID: cpp/system-data-exposure
Kind: path-problem
Security severity: 6.5
Severity: warning
Precision: high
Tags:
- security
- external/cwe/cwe-497
Query suites:
- cpp-code-scanning.qls
- cpp-security-extended.qls
- cpp-security-and-quality.qls
公开系统数据或调试信息可能有助于恶意用户了解系统并制定攻击计划。攻击者可以使用显示技术、操作系统和产品版本的错误消息来针对软件中已知的漏洞调整其攻击。
此查询查找可能向远程用户公开系统配置信息的区域。
建议¶
不要将系统配置信息暴露给远程用户。请注意,对用户有帮助的信息与对恶意用户有用的不必要详细信息之间的区别。
示例¶
在此示例中,当发生特定错误时,PATH
环境变量的值将完全公开给用户。这可能会向没有合法访问该信息的恶意用户公开有关系统上安装的软件的信息。
char* path = getenv("PATH");
//...
sprintf(buffer, "Cannot find exe on path: %s", path);
send(socket, buffer, strlen(buffer), 0);
应重新措辞消息,而不包含此信息,例如
char* path = getenv("PATH");
//...
message = "An internal error has occurred. Please try again or contact a system administrator.\n";
send(socket, message, strlen(message), 0);
参考¶
常见弱点枚举:CWE-497.