CWE-806:使用源缓冲区大小的缓冲区访问
查看自定义信息:
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 C(有时普遍) C ++(有时普遍)
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例1 在下面的示例中,使用方法strncpy将源字符串复制到dest字符串。
(不良代码)
示例语言:C
...
char Source [21] =“字符串”; char dest [12]; strncpy(dest,source,sizeof(source)-1); ... 但是,在呼叫中,在sizeof调用中使用源字符串来确定要复制的字符数。这将创建一个缓冲区溢出,因为源字符串的大小大于dest字符串。NEDS字符串应在sizeof调用中使用,以确保复制正确的字符数,如下所示。
(好代码)
示例语言:C
...
char Source [21] =“字符串”; char dest [12]; strncpy(dest,source,sizeof(dest)-1); ... 示例2 在此示例中,方法输出Filenametolog将文件名输出到日志文件。方法参数包括一个指向字符串的指针,该字符串包含文件名和字符串中字符数的整数。将文件名复制到缓冲区,其中缓冲区大小设置为最大大小,以便对日志文件的输入。然后,该方法调用另一种方法将缓冲区的内容保存到日志文件中。
(不良代码)
示例语言:C
#define log_input_size 40
//将文件名保存到日志文件 int outputfileNametolog(char *filename,int length){
int成功;
//尺寸设置为最大尺寸的缓冲区,以便输入到日志文件 char buf [log_input_size]; //将文件名复制到缓冲区 strncpy(buf,fileName,长度); //保存到日志文件 成功= savetologfile(buf); 返回成功; 但是,在这种情况下,字符串复制方法strncpy错误地使用长度方法参数来确定要复制的字符数,而不是使用本地字符串字符串BUF的大小。如果FileName指向的字符字符串中包含的字符字符串中包含的字符数较大,那么这可能会导致缓冲区溢出。字符串复制方法应在sizeof调用中使用BUF字符串,以确保仅复制BUF数组大小的字符以避免缓冲区溢出,如下所示。
(好代码)
示例语言:C
...
//将文件名复制到缓冲区 strncpy(buf,filename,sizeof(buf)-1); ...
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI)由manbetx客户端首页(MITER)。版权所有©2006–2023,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |