CWE

常见的弱点枚举

一个由社区开发的软件&硬件缺陷类型的列表

2021 CWE最重要的硬件的弱点
CWE最危险的弱点
>CWE列表> CWE -个人字典定义(4.10)
ID

cwe - 786:访问的内存位置之前缓冲区的开始

弱点ID: 786
抽象:基地
结构:简单的
视图定制的信息:
+描述
产品读取或写入缓冲区使用索引或指针,引用一个内存位置之前缓冲区的开始。
+扩展描述
这通常发生在一个指针或其指数递减一个位置在缓冲区,当指针运算结果的有效内存位置的开始之前,或当一个负折射率。
+的关系
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”研究概念”(cwe - 1000)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
ParentOf 基地Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 124年 缓冲区承销(缓冲区下溢)
ParentOf 变体变体——一个弱点与某种类型的产品,通常涉及到一个特定的语言或技术。更具体的比基本的弱点。变异水平弱点通常描述问题的3到5以下维度:行为、财产、技术、语言,和资源。 127年 缓冲Under-read
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关观点“软件开发”(cwe - 699)
自然 类型 ID 的名字
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1218年 内存缓冲区错误
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及质量的措施(2020)”(CWE-1305)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
部分帮助此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
+相关的视图”方案及数据保护措施”(cwe - 1340)
自然 类型 ID 的名字
ChildOf 类类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 119年 不当的操作限制的范围内一个内存缓冲区
+常见的后果
部分帮助这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 影响 可能性
保密

技术的影响:读记忆

禁止入内的阅读,攻击者可能对敏感信息的访问。如果敏感信息包含系统的细节,比如当前缓冲区位置在内存中,这方面的知识可用于工艺进一步袭击,可能带来更严重的后果。
完整性
可用性

技术的影响:修改内存;DoS:崩溃,退出或重新启动

越限的内存访问很可能导致腐败相关的记忆,或许说明,可能导致崩溃。
完整性

技术的影响:修改内存;执行未经授权的代码或命令

如果损坏内存可以有效地控制,可以执行任意代码。如果损坏内存数据而不是指令,系统将继续与不当函数变化,可能违反了一个隐式或显式的政策。
+示范例子

示例1

在接下来的C / c++的例子,一个效用函数是用来修剪尾随空格字符字符串。函数将输入字符串复制到本地字符串并使用一段语句删除尾随空格通过字符串和向后移动覆盖NUL字符的空格。

(坏的代码)
例如语言:C
char * trimTrailingWhitespace (char * strMessage int长度){
char * retMessage;
char *消息= malloc (sizeof (char) *(+ 1)长度);

/ /输入字符串复制到一个临时字符串
字符消息(长度+ 1);
int指数;
(指数= 0;指数<长度;指数+ +){
消息(指数)= strMessage(指数);
}
消息(指数)= ' \ 0 ';

/ /修剪尾随空格
int len =索引1;
而(isspace(消息(len))) {
消息(len) = ' \ 0 ';
莱恩-;
}

/ /返回字符串没有空格
retMessage =消息;
返回retMessage;
}

然而,这个函数会导致缓冲承销如果输入字符串包含所有空格。在某些系统过去而声明将后退一个字符串的开始,将调用isspace()函数在一个地址的范围之外的本地缓冲区。

示例2

下面的示例用户要求一个偏移量到一个数组中选择一个项目。

(坏的代码)
例如语言:C

int主要(int命令行参数个数,char * * argv) {
char *项目[]={“船”、“车”、“卡车”,“训练”};
int指数= GetUntrustedOffset ();
printf(“你选择% s \ n”,项目[索引1]);
}

程序员允许用户指定的元素列表中选择,但是攻击者可以提供一个界外偏移,导致缓冲区上(cwe - 126)。

示例3

下面是一个例子的代码可能会导致一个缓冲承销,如果发现()返回一个负值,表明ch srcBuf没有找到:

(坏的代码)
例如语言:C
int main () {

strncpy (destBuf &srcBuf[找到(srcBuf ch)], 1024);
}

如果索引srcBuf用户的控制之下,这是一个任意write-what-where条件。

+观察到的例子
参考 描述
无节制的长度值会导致缓冲区下溢SSLv2的站点时的挑战。
缓冲区下溢的体积小价值大的缓冲区(长度参数不一致,cwe - 130)
从一个所有空白字符串缓冲区下溢,这导致一个计数器递减缓冲区而寻找一个非空字符。
从编码的数据缓冲区下溢合成触发一个整数溢出。
产品集不正确的缓冲区大小限制,导致“了2”缓冲区下溢。
使用负值memcpy()操作,导致缓冲区下溢。
由于处理不当特殊字符缓冲区下溢
+会员资格
部分帮助这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 类型 ID 的名字
MemberOf 视图视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 884年 CWE横截面
MemberOf 类别类别——CWE条目包含一组其他条目,共享一个共同的特点。 1160年 SEI CERT C编码标准- 06指导方针。数组(ARR)
+分类法映射
映射分类名称 节点ID 适合 映射节点名
CERT C安全编码 ARR30-C CWE更具体 不形式或使用界外指针或数组下标吗
+内容的历史
+提交
提交日期 提交者 组织
2009-10-21 CWE内容团队 主教法冠
+修改
修改日期 修饰符 组织
2011-06-01 CWE内容团队 主教法冠
更新Common_Consequences
2012-05-11 CWE内容团队 主教法冠
更新Common_Consequences Demonstrative_Examples Observed_Examples,关系
2017-11-08 CWE内容团队 主教法冠
更新Common_Consequences、Demonstrative_Examples Taxonomy_Mappings
2019-01-03 CWE内容团队 主教法冠
更新的关系
2020-02-24 CWE内容团队 主教法冠
更新的关系
2020-08-20 CWE内容团队 主教法冠
更新的关系
2020-12-10 CWE内容团队 主教法冠
更新的关系
2023-01-31 CWE内容团队 主教法冠
更新描述
更多的信息是可用的,请选择一个不同的过滤器。
页面最后更新:2023年1月31日