背景详情
引入方式
Implementation
适用平台
编程语言
名称: C (Sometimes)
名称: C++ (Sometimes)
类: Not Language-Specific (Undetermined)
常见后果
| 影响范围 |
影响 |
可能性 |
| Availability | DoS: Resource Consumption (Memory), DoS: Resource Consumption (Other)
注意: If an adversary can prevent a reference count from reaching zero, then resources might not be released when they are supposed to, thus causing resources to become scarce for future needs. | High |
| Availability | DoS: Crash, Exit, or Restart
注意: If an adversary can cause a reference count to reach zero when the resource is still in use, then a resource might be released before it is supposed to be, possibly forcing an error that causes the product to crash or exit out of its current operation. | Low |
观察示例
| 参考资料 |
描述 |
| Chain: reference count is not decremented, leading to memory leak in OS by sending ICMP packets. |
| Reference count for shared memory not decremented when a function fails, potentially allowing unprivileged users to read kernel memory. |
| Chain: improper reference count tracking leads to file descriptor consumption |
| Chain: integer overflow in reference counter causes the same variable to be destroyed twice. |
| Incorrect reference count calculation leads to improper object destruction and code execution. |
| Chain: incorrect update of reference count leads to memory leak. |
| chain/composite: use of incorrect data type for a reference counter allows an overflow of the counter, leading to a free of memory that is still in use. |
| Improper reference counting leads to failure of cryptographic operations. |
| Chain: improper reference counting in a garbage collection routine leads to use-after-free |
| Chain: reference count not correctly maintained when client disconnects during a large operation, leading to a use-after-free. |
| Reference count not always incremented, leading to crash or code execution. |
| improper reference counting leads to expired pointer dereference. |
| OS kernel increments reference count twice but only decrements once, leading to resource consumption and crash. |
| OS kernel driver allows code execution |
| improper reference counting leads to exhaustion of IP addresses |
| Race condition causes reference counter to be decremented prematurely, leading to the destruction of still-active object and an invalid pointer dereference. |
| improper reference counting leads to use-after-free |
漏洞映射说明
依据 : This CWE entry is at the Base level of abstraction, which is a preferred level of abstraction for mapping to the root causes of vulnerabilities.
备注 : Carefully read both the name and description to ensure that this mapping is an appropriate fit. Do not try to 'force' a mapping to a lower-level Base/Variant simply to comply with this preferred level of abstraction.
参考资料
REF-884
Windows Kernel Reference Count Vulnerabilities - Case Study
Mateusz "j00ru" Jurczyk.
https://j00ru.vexillium.org/slides/2012/zeronights.pdf
提交记录
| 名称 |
组织 |
日期 |
发布日期 |
Version |
| CWE Content Team |
MITRE |
2012-12-21 +00:00 |
2013-02-21 +00:00 |
2.4 |
修改记录
| 名称 |
组织 |
日期 |
备注 |
| CWE Content Team |
MITRE |
2019-06-20 +00:00 |
updated Type |
| CWE Content Team |
MITRE |
2020-02-24 +00:00 |
updated Relationships, Type |
| CWE Content Team |
MITRE |
2023-01-31 +00:00 |
updated Description |
| CWE Content Team |
MITRE |
2023-04-27 +00:00 |
updated References, Relationships |
| CWE Content Team |
MITRE |
2023-06-29 +00:00 |
updated Mapping_Notes |
| CWE Content Team |
MITRE |
2025-04-03 +00:00 |
updated Common_Consequences |
| CWE Content Team |
MITRE |
2026-10-28 +00:00 |
updated Background_Details, Common_Consequences, Description |