Bug 1575473 (CVE-2018-1121)

Summary: CVE-2018-1121 procps-ng, procps: process hiding through race condition enumerating /proc
Product: [Other] Security Response Reporter: Doran Moppert <dmoppert>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED WONTFIX QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: albert, dmoppert, jaromir.capik, jrybar, kdudka, security-response-team, wmealing
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Since the kernel's proc_pid_readdir() returns PID entries in ascending numeric order, a process occupying a high PID can use inotify events to determine when the process list is being scanned, and fork/exec to obtain a lower PID, thus avoiding enumeration. An unprivileged attacker can hide a process from procps-ng's utilities by exploiting a race condition in reading /proc/PID entries.
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-04 09:25:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1575455    

Description Doran Moppert 2018-05-07 04:16:05 UTC
An unprivileged attacker can hide a process from procps-ng's utilities by exploiting a race condition in reading /proc/PID entries.

Since the kernel's proc_pid_readdir() returns PID entries in ascending numeric order, a process occupying a high PID can use inotify events to determine when the process list is being scanned, and fork/exec to obtain a lower PID, thus avoiding enumeration.

Comment 3 Doran Moppert 2018-05-11 02:58:00 UTC
Statement:

The /proc filesystem is not a reliable mechanism to account for processes running on a system, as it is unable to offer snapshot semantics. Short-lived processes have always been able to escape detection by tools that monitor /proc. This CVE simply identifies a reliable way to do so using inotify.

Process accounting for security purposes, or with a requirement to record very short-running processes and those attempting to evade detection, should be performed with more robust methods such as auditd(8) (the Linux Audit Daemon) or systemtap.

Comment 4 Adam Mariš 2018-05-16 11:17:41 UTC
Acknowledgments:

Name: Qualys Research Labs

Comment 5 Doran Moppert 2018-05-18 05:13:31 UTC
Public via: http://seclists.org/oss-sec/2018/q2/122

Comment 6 Doran Moppert 2018-05-18 05:13:37 UTC
External References:

https://www.qualys.com/2018/05/17/procps-ng-audit-report-advisory.txt