CVE-2016-2847 in Linuxinfo

Summary

by MITRE

fs/pipe.c in the Linux kernel before 4.5 does not limit the amount of unread data in pipes, which allows local users to cause a denial of service (memory consumption) by creating many pipes with non-default sizes.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 07/27/2022

The vulnerability identified as CVE-2016-2847 resides within the Linux kernel's pipe implementation in the fs/pipe.c file and affects versions prior to 4.5. This flaw represents a classic resource exhaustion issue that exploits the kernel's failure to enforce limits on unread data within pipe structures. The vulnerability stems from the kernel's design philosophy that allows pipes to accumulate unlimited amounts of unread data, creating a potential avenue for malicious actors to consume system resources without proper bounds enforcement.

The technical implementation of this vulnerability occurs at the kernel level where pipe buffers are allocated but not properly constrained in terms of their maximum capacity for unread data. When local users create multiple pipes with non-default sizes, they can progressively fill these buffers until system memory becomes exhausted. The absence of limits on pipe buffer growth means that each pipe can continue accumulating data indefinitely, leading to memory exhaustion that ultimately results in system instability and denial of service conditions. This behavior aligns with CWE-770, which addresses the allocation of resources without proper bounds checking, and represents a fundamental flaw in resource management within the kernel's pipe subsystem.

From an operational impact perspective, this vulnerability enables local attackers to perform denial of service attacks that can severely impact system availability and performance. The memory consumption grows linearly with each additional pipe created, making it particularly dangerous in environments where multiple processes might be creating pipes simultaneously. The vulnerability is especially concerning because it requires no special privileges beyond standard user access, making it exploitable by any local user with basic system access. Attackers can systematically consume available memory resources until the system becomes unresponsive or begins swapping heavily, effectively rendering the system unusable for legitimate operations.

The mitigation strategy for CVE-2016-2847 involves upgrading to Linux kernel version 4.5 or later, where the vulnerability has been addressed through proper implementation of pipe buffer limits. System administrators should also consider implementing process limits and monitoring for unusual pipe creation patterns as additional defensive measures. From an ATT&CK framework perspective, this vulnerability maps to T1499.004, which covers resource exhaustion attacks, and T1068, which addresses local privilege escalation through system resource manipulation. Organizations should ensure their kernel versions are current and regularly patched to prevent exploitation of such fundamental system-level vulnerabilities that can lead to complete system compromise through resource exhaustion attacks.

Reservation

03/06/2016

Disclosure

04/27/2016

Moderation

accepted

Entry

VDB-82962

CPE

ready

EPSS

0.00557

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!