CWE-663 在并发上下文中使用不可再入的函数

Use of a Non-reentrant Function in a Concurrent Context

结构: Simple

Abstraction: Base

状态: Draft

被利用可能性: unkown

基本描述

The software calls a non-reentrant function in a concurrent context in which a competing code sequence (e.g. thread or signal handler) may have an opportunity to call the same function or otherwise influence its state.

相关缺陷

  • cwe_Nature: ChildOf cwe_CWE_ID: 662 cwe_View_ID: 1000 cwe_Ordinal: Primary

常见的影响

范围 影响 注释
['Integrity', 'Confidentiality', 'Other'] ['Modify Application Data', 'Read Application Data', 'Alter Execution Logic']

可能的缓解方案

Implementation

策略:

Use reentrant functions if available.

Implementation

策略:

Add synchronization to your non-reentrant function.

Implementation

策略:

In Java, use the ReentrantLock Class.

分析过的案例

标识 说明 链接
CVE-2001-1349 unsafe calls to library functions from signal handler https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2001-1349
CVE-2004-2259 SIGCHLD signal to FTP server can cause crash under heavy load while executing non-reentrant functions like malloc/free. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-2259

相关攻击模式

  • CAPEC-29

引用