This vulnerability occurs when a program fails to properly close file descriptors or handles after they are no longer needed, leaving these system resources allocated.
File descriptors and handles are limited system resources that act as references to open files, network connections, or other I/O objects. When developers don't explicitly release them by calling close() or similar cleanup functions, these resources remain locked—even after the program stops using them. This creates a resource leak that accumulates over time, especially in long-running applications or loops. Attackers can exploit this weakness by repeatedly triggering the leak, eventually exhausting all available file descriptors on the system. This leads to a denial-of-service condition where legitimate processes—including the operating system itself—cannot open new files or network connections. The impact ranges from application crashes to full system instability, making proper resource lifecycle management essential for robust software.
Impact: DoS: Resource Consumption (Other)
An attacker that can influence the allocation of resources that are not properly released could deplete the available resource pool and prevent all other processes from accessing the same type of resource.
Strategy: Resource Limitation