CVE-2024-22365
Medium · 5.5CVSS
5.5
EPSS
0.5%
Published
Feb 6, 2024
CISA due date
—
Cloudanix analysis
A flaw in the login handling software lets someone who already has access to the computer stop other people from signing in by creating a special file that confuses the system.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A local attacker can create a FIFO (named pipe) in place of an expected directory, causing the protect_dir function's openat call (lacking O_DIRECTORY) to block indefinitely and stall the PAM login process.
Why it matters to the business
Attackers with local access can prevent legitimate users from logging in, leading to operational disruption on systems that rely on this PAM version for authentication.
How an attack unfolds
An attacker with local shell access runs mkfifo to replace a directory path used by PAM's protect_dir logic; when a login attempt triggers the openat without the directory flag, the process hangs, resulting in a denial of service for authentication.
How to fix it
Upgrade linux-pam to version 1.6.0 or later, or apply the fix from commit 031bb5a5d0d950253b68138b498dc93be69a64cb; rebuild and redeploy any packages that depend on the patched PAM library.
How to confirm the fix worked
Confirm the installed PAM version is 1.6.0 or newer; review source for the presence of O_DIRECTORY in the protect_dir openat call; test login flows after upgrade to ensure no blocking occurs.
Typical attack path
- Obtain local user access on the target system
- Identify or create the target path used by protect_dir
- Execute mkfifo to place a named pipe at that location
- Trigger an authentication attempt that invokes the vulnerable PAM code path
- Observe the login process enter a blocked state
How to detect it
Search system and authentication logs for processes stuck in openat or protect_dir calls; monitor for unexpected FIFO creation in directories used by PAM modules; review audit logs for mkfifo invocations around login failures.
What your security team should do
- Prioritize patching systems that expose PAM authentication to untrusted local users
- Apply the commit or upgrade to 1.6.0 across all affected distributions
- Monitor for stalled login processes as an interim detection measure
- Review downstream package dependencies for the fixed version
The record
linux-pam (aka Linux PAM) before 1.6.0 allows attackers to cause a denial of service (blocked login process) via mkfifo because the openat call (for protect_dir) lacks O_DIRECTORY.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | pam | 0 | 1.3.1-33.el8 |
| AlmaLinux:8 | pam-devel | 0 | 1.3.1-33.el8 |
| AlmaLinux:9 | pam | 0 | 1.5.1-19.el9 |
| AlmaLinux:9 | pam-devel | 0 | 1.5.1-19.el9 |
| AlmaLinux:9 | pam-docs | 0 | 1.5.1-19.el9 |
| Alpine:v3.20 | linux-pam | 0 | 1.6.0-r0 |
| Alpine:v3.21 | linux-pam | 0 | 1.6.0-r0 |
| Alpine:v3.22 | linux-pam | 0 | 1.6.0-r0 |
| Debian:11 | pam | 0 | No fix |
| Debian:12 | pam | 0 | No fix |
| Debian:13 | pam | 0 | 1.5.3-4 |
| Debian:14 | pam | 0 | 1.5.3-4 |
| Mageia:9 | pam | 0 | 1.5.2-5.1.mga9 |
| Red Hat:enterprise_linux:8::baseos | pam | 0 | 0:1.3.1-33.el8 |
| Red Hat:enterprise_linux:8::baseos | pam-debuginfo | 0 | 0:1.3.1-33.el8 |
| Red Hat:enterprise_linux:8::baseos | pam-debugsource | 0 | 0:1.3.1-33.el8 |
| Red Hat:enterprise_linux:8::baseos | pam-devel | 0 | 0:1.3.1-33.el8 |
| Red Hat:enterprise_linux:9::appstream | pam | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::appstream | pam-debuginfo | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::appstream | pam-debugsource | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::appstream | pam-devel | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::appstream | pam-docs | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::baseos | pam | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::baseos | pam-debuginfo | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::baseos | pam-debugsource | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::baseos | pam-devel | 0 | 0:1.5.1-19.el9 |
| Red Hat:enterprise_linux:9::baseos | pam-docs | 0 | 0:1.5.1-19.el9 |
| Rocky Linux:8 | pam | 0 | 0:1.3.1-33.el8 |
| SUSE:Enterprise Storage 7.1 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Micro 5.1 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Micro 5.2 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Micro 5.3 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Micro 5.4 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Micro 5.5 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP5 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Real Time 15 SP4 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server 12 SP5 | pam | 0 | 1.1.8-24.56.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | pam | 0 | 1.1.8-24.56.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | pam | 0 | 1.1.8-24.56.1 |
| SUSE:Manager Proxy 4.3 | pam | 0 | 1.3.0-150000.6.66.1 |
| SUSE:Manager Server 4.3 | pam | 0 | 1.3.0-150000.6.66.1 |
| Ubuntu:20.04:LTS | pam | 0 | 1.3.1-5ubuntu4.7 |
| Ubuntu:22.04:LTS | pam | 0 | 1.4.0-11ubuntu2.4 |
| Ubuntu:23.10 | pam | 0 | 1.5.2-6ubuntu1.1 |
| Ubuntu:Pro:14.04:LTS | pam | 0 | 1.1.8-1ubuntu2.2+esm4 |
| Ubuntu:Pro:16.04:LTS | pam | 0 | 1.1.8-3.2ubuntu2.3+esm5 |
| Ubuntu:Pro:18.04:LTS | pam | 0 | 1.1.8-3.6ubuntu2.18.04.6+esm1 |
| openSUSE:Leap 15.5 | pam | 0 | 1.3.0-150000.6.66.1 |
| openSUSE:Leap Micro 5.3 | pam | 0 | 1.3.0-150000.6.66.1 |
| openSUSE:Leap Micro 5.4 | pam | 0 | 1.3.0-150000.6.66.1 |
Related vulnerabilities
- CVE-2024-10963 A flaw was found in pam_access, where certain rules in its configuration file are… Also affects pam
- CVE-2024-10041 A vulnerability was found in PAM. Also affects pam
- CVE-2013-7041 The pam_userdb module for Pam uses a case-insensitive method to compare hashed passwords… Also affects pam
- CVE-2022-28321 The Linux-PAM package before 1.5.2-6.1 for openSUSE Tumbleweed allows authentication… Also affects pam