cwe - 909:失踪的初始化的资源
视图定制的信息:
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
相关观点“软件开发”(cwe - 699)
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。
语言 类:不是特定于语言的患病率(待定)
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例1 在这里,一个布尔initiailized领域咨询,以确保初始化任务只完成了一次。然而,该领域是在静态初始化错误地设置为true,所以从来没有达到初始化代码。
(坏的代码)
例如语言:Java
私人布尔= true初始化;
公共空间someMethod () {
如果初始化(!){
/ /执行初始化任务 … 初始化= true; 示例2 下面的代码只打算限制某些操作管理员。
(坏的代码)
例如语言:Perl
用户名=美元GetCurrentUser ();
(状态= GetStateData美元用户名); 如果(定义(状态)美元){
(uid = ExtractUserID美元状态); }#做东西 如果(uid = = 0美元){
DoAdminThings (); }如果应用程序无法提取状态信息——比如说,由于数据库超时,那么$ uid变量将不会由程序员显式地设置。这将导致美元uid被视为等同于“0”条件,允许原始用户执行管理员操作。即使攻击者不能直接影响状态数据,意想不到的错误可能导致不正确的权限分配给一个用户只是偶然。 示例3 下面的代码将连接字符串变量并打印字符串。
(坏的代码)
例如语言:C
char str [20];
strcat (str,“hello world”); printf (" % s ", str); 这可能看起来无辜的足够,但是str未初始化,所以它包含随机存储器。因此,str[0]可能不包含零终结者,所以复制可能开始一个偏移量0。结果可能会有所不同,这取决于底层的内存。 如果找到零终结者str[8]之前,一些字节的随机垃圾前将打印字符串“hello world”。从以前使用内存可能包含敏感信息,比如密码(这可能发生的结果CWE-14或cwe - 244)。在这个例子中,它可能不是一个大问题,但考虑会发生什么如果大量内存输出零终结者。 如果没发现空终结者str[8]之前,可能会发生缓冲区溢出,因为strcat首先会查找零终结者,然后复制12字节从这个位置开始。此外,缓冲罩上可能发生(cwe - 126)如果一个空终结者不是发现在年底前达到内存段,导致段错误和崩溃。 示例4 这个例子将在一个未知的条件下,当我离开test_string err_val是相同的值,因为test_string不是初始化(cwe - 456)。根据这个代码段出现(如在一个函数体),test_string可能是随机的,如果是存储在堆或堆栈。如果中声明的变量是静态内存,它可能是零个或NULL。编译器优化这个地址的不可预知性。
(坏的代码)
例如语言:C
char * test_string;
如果(我! = err_val) {
test_string =“Hello World !”; }printf (" % s ", test_string); 当printf (), test_string可能是一个意想不到的地址,所以printf可能打印垃圾字符串(cwe - 457)。 修复这段代码中,有一些方法来确保已正确设置test_string一旦它到达printf ()。 一个解决方案是集test_string前可以接受默认的条件:
(好的代码)
例如语言:C
char * test_string =初“完成”;
如果(我! = err_val) {
test_string =“Hello World !”; }printf (" % s ", test_string); 另一个解决方案是确保每个分支的条件,包括默认的/ else分支,可以确保test_string设置:
(好的代码)
例如语言:C
char * test_string;
如果(我! = err_val) {
test_string =“Hello World !”; }其他{
test_string = "做另一边!”; }printf (" % s ", test_string);
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |