cwe - 479:信号处理器使用不可重入函数
视图定制的信息:
不可重入函数是函数不能安全地,打断,然后回忆起第一次调用完成之前没有导致内存泄露。这可能会导致一个意想不到的系统状态和不可预测的结果与各种各样的潜在后果取决于上下文,包括拒绝服务和代码的执行。 许多函数是不可重入的,但是其中的一些会导致记忆的腐败,如果他们被用在一个信号处理程序。syslog()函数调用是一个这样的例子。为了执行其功能,它分配少量的内存空间。”If syslog() is suspended by a signal call and the signal handler calls syslog(), the memory used by both of these functions enters an undefined, and possibly, exploitable state. Implementations of malloc() and free() manage metadata in global structures in order to track which memory is allocated versus which memory is available, but they are non-reentrant. Simultaneous calls to these functions can cause corruption of the metadata.
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
相关观点“软件开发”(cwe - 699)
该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。
语言 C患病率(待定) c++患病率(待定)
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例1 在这个例子中,一个信号处理程序使用syslog()日志信息:
(坏的代码)
char *消息;
空白sh (int假){
syslog (LOG_NOTICE“% s \ n”,消息); }睡眠(10); 退出(0); int主要(int命令行参数个数,char * argv []) {
… }信号(SIGHUP, sh); 信号(SIGTERM, sh); 睡眠(10); 退出(0);
如果第一次调用的执行信号处理程序暂停后调用syslog()和信号处理程序被称为第二次分配的内存由syslog()进入一个未定义的,并可能,可利用的状态。
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |