CWEweakness

CWE-911 Improper Update of Reference Count

Medium Official page ↗
Abstraction
Base
Structure
Simple
Status
Incomplete
Likelihood of exploit
Medium
Languages
C, C++, Not Language-Specific
CWE version
5.0

Description

The product uses a reference count to manage a resource, but it does not update or incorrectly updates the reference count.

Common consequences

• 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. • 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.

Observed examples

• CVE-2002-0574: Chain: reference count is not decremented, leading to memory leak in OS by sending ICMP packets. • CVE-2004-0114: Reference count for shared memory not decremented when a function fails, potentially allowing unprivileged users to read kernel memory. • CVE-2006-3741: Chain: improper reference count tracking leads to file descriptor consumption • CVE-2007-1383: Chain: integer overflow in reference counter causes the same variable to be destroyed twice. • CVE-2007-1700: Incorrect reference count calculation leads to improper object destruction and code execution. • CVE-2008-2136: Chain: incorrect update of reference count leads to memory leak. • CVE-2008-2785: 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. • CVE-2008-5410: Improper reference counting leads to failure of cryptographic operations. • CVE-2009-1709: Chain: improper reference counting in a garbage collection routine leads to use-after-free • CVE-2009-3553: Chain: reference count not correctly maintained when client disconnects during a large operation, leading to a use-after-free. • CVE-2009-3624: Reference count not always incremented, leading to crash or code execution. • CVE-2010-0176: improper reference counting leads to expired pointer dereference. • CVE-2010-0623: OS kernel increments reference count twice but only decrements once, leading to resource consumption and crash. • CVE-2010-2549: OS kernel driver allows code execution • CVE-2010-4593: improper reference counting leads to exhaustion of IP addresses • CVE-2011-0695: Race condition causes reference counter to be decremented prematurely, leading to the destruction of still-active object and an invalid pointer dereference. • CVE-2012-4787: improper reference counting leads to use-after-free

Related

Observed example · CVE (17)

  • CVE-2012-4787 Use-after-free vulnerability in Microsoft Internet Explorer 9 and 10 allows remote attackers to execute arbitrary code via a crafted web… vulnerability
  • CVE-2011-0695 Race condition in the cm_work_handler function in the InfiniBand driver (drivers/infiniband/core/cma.c) in Linux kernel 2.6.x allows remote… vulnerability
  • CVE-2010-4593 The Connection Manager in IBM Lotus Mobile Connect before 6.1.4 does not properly maintain a certain reference count, which allows remote… vulnerability
  • CVE-2010-2549 Use-after-free vulnerability in the kernel-mode drivers in Microsoft Windows Vista SP1 and SP2 and Server 2008 Gold and SP2 allows local… vulnerability
  • CVE-2010-0176 Mozilla Firefox before 3.0.19, 3.5.x before 3.5.9, and 3.6.x before 3.6.2; Thunderbird before 3.0.4; and SeaMonkey before 2.0.4 do not… vulnerability
  • CVE-2010-0623 The futex_lock_pi function in kernel/futex.c in the Linux kernel before 2.6.33-rc7 does not properly manage a certain reference count,… vulnerability
  • CVE-2009-3553 Use-after-free vulnerability in the abstract file-descriptor handling interface in the cupsdDoSelect function in scheduler/select.c in the… vulnerability
  • CVE-2009-3624 The get_instantiation_keyring function in security/keys/keyctl.c in the KEYS subsystem in the Linux kernel before 2.6.32-rc5 does not… vulnerability
  • CVE-2009-1709 Use-after-free vulnerability in the garbage-collection implementation in WebCore in WebKit in Apple Safari before 4.0 allows remote… vulnerability
  • CVE-2008-5410 The PK11_SESSION cache in the OpenSSL PKCS#11 engine in Sun Solaris 10 does not maintain reference counts for operations with asymmetric… vulnerability
  • CVE-2008-2785 Mozilla Firefox before 2.0.0.16 and 3.x before 3.0.1, Thunderbird before 2.0.0.16, and SeaMonkey before 1.1.11 use an incorrect integer… vulnerability
  • CVE-2008-2136 Memory leak in the ipip6_rcv function in net/ipv6/sit.c in the Linux kernel 2.4 before 2.4.36.5 and 2.6 before 2.6.25.3 allows remote… vulnerability
  • CVE-2007-1700 The session extension in PHP 4 before 4.4.5, and PHP 5 before 5.2.1, calculates the reference count for the session variables without… vulnerability
  • CVE-2007-1383 Integer overflow in the 16 bit variable reference counter in PHP 4 allows context-dependent attackers to execute arbitrary code by… vulnerability
  • CVE-2006-3741 The perfmonctl system call (sys_perfmonctl) in Linux kernel 2.4.x and 2.6 before 2.6.18, when running on Itanium systems, does not properly… vulnerability
  • CVE-2004-0114 The shmat system call in the System V Shared Memory interface for FreeBSD 5.2 and earlier, NetBSD 1.3 and earlier, and OpenBSD 2.6 and… vulnerability
  • CVE-2002-0574 Memory leak in FreeBSD 4.5 and earlier allows remote attackers to cause a denial of service (memory exhaustion) via ICMP echo packets that… vulnerability

Can precede · CWE (2)

  • CWE-672 Operation on a Resource after Expiration or Release weakness
  • CWE-772 Missing Release of Resource after Effective Lifetime weakness

Child of · CWE (1)

  • CWE-664 Improper Control of a Resource Through its Lifetime weakness

Referenced by CVE · weakness (20)

  • CVE-2026-110753 Text::CSV_XS versions from 1.46 before 1.65 for Perl have a use-after-free of bind_columns variables when skip_empty_rows skips an empty… vulnerability
  • CVE-2026-77587 Tor before 0.4.9.11 is prone to a use-after-free (and potential double free) of a conflux object when a recovery leg revives a conflux set… vulnerability
  • CVE-2026-49419 When the JAIL_AT_DESC flag is specified, kern_jail_set() and kern_jail_get() released the reference to the caller's current prison before… vulnerability
  • CVE-2026-19380 A vulnerability was identified in Mullvad wireguard.sys 0.10.1. vulnerability
  • CVE-2026-52943 In the Linux kernel, the following vulnerability has been resolved: net: skbuff: fix missing zerocopy reference in pskb_carve helpers… vulnerability
  • CVE-2026-46316 In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: vgic-its: Drop the translation cache reference only for the… vulnerability
  • CVE-2026-46099 In the Linux kernel, the following vulnerability has been resolved: net: ipv6: fix NOREF dst use in seg6 and rpl lwtunnels… vulnerability
  • CVE-2026-42534 NLnet Labs Unbound up to and including version 1.25.0 has a vulnerability in the jostle logic that could defeat its purpose and degrade… vulnerability
  • CVE-2024-45783 A flaw was found in grub2. vulnerability
  • CVE-2024-46972 Software installed and run as a non-privileged user may conduct improper GPU system calls to trigger use-after-free kernel exceptions. vulnerability
  • CVE-2024-43102 Concurrent removals of certain anonymous shared memory mappings by using the UMTX_SHM_DESTROY sub-request of UMTX_OP_SHM can lead to… vulnerability
  • CVE-2021-47327 In the Linux kernel, the following vulnerability has been resolved: iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get… vulnerability
  • CVE-2023-5633 The reference count changes made as part of the CVE-2023-33951 and CVE-2023-33952 fixes exposed a use-after-free flaw in the way memory… vulnerability
  • CVE-2023-2019 A flaw was found in the Linux kernel's netdevsim device driver, within the scheduling of events. vulnerability
  • CVE-2020-11935 It was discovered that aufs improperly managed inode reference counts in the vfsub_dentry_open() method. vulnerability
  • CVE-2022-37012 This vulnerability allows remote attackers to create a denial-of-service condition on affected installations of Unified Automation OPC UA… vulnerability
  • CVE-2023-22394 An Improper Handling of Unexpected Data Type vulnerability in the handling of SIP calls in Juniper Networks Junos OS on SRX Series and MX… vulnerability
  • CVE-2022-1678 An issue was discovered in the Linux Kernel from 4.18 to 4.19, an improper update of sock reference in TCP pacing can lead to memory/netns… vulnerability
  • CVE-2022-29581 Improper Update of Reference Count vulnerability in net/sched of Linux Kernel allows local attacker to cause privilege escalation to root. vulnerability
  • CVE-2022-22195 An Improper Update of Reference Count vulnerability in the kernel of Juniper Networks Junos OS Evolved allows an unauthenticated,… vulnerability