CVE-2016-4422

9.8 CRITICAL

📋 TL;DR

CVE-2016-4422 is an authentication bypass vulnerability in libpam-sshauth's PAM module that allows attackers to authenticate as any system user without valid credentials. This affects systems using libpam-sshauth for SSH authentication via PAM. Attackers can gain unauthorized access to systems with this module enabled.

💻 Affected Systems

Products:
  • libpam-sshauth
Versions: All versions before the fix
Operating Systems: Debian-based systems (Debian, Ubuntu), Linux systems using libpam-sshauth
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when libpam-sshauth is installed and configured in PAM for authentication. Not all systems use this module by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise - attackers gain root access by authenticating as any user including privileged accounts, leading to full control of affected systems.

🟠

Likely Case

Unauthorized access to user accounts - attackers bypass authentication to access systems as regular users, potentially escalating privileges through other means.

🟢

If Mitigated

No impact if libpam-sshauth is not installed or the vulnerable PAM configuration is not used for authentication.

🌐 Internet-Facing: HIGH - SSH servers using vulnerable libpam-sshauth are directly accessible from the internet, allowing remote authentication bypass.
🏢 Internal Only: HIGH - Internal systems using the vulnerable module are equally susceptible to authentication bypass attacks.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is in the authentication logic itself - attackers can trigger the bypass by attempting authentication with any username when the module is configured.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in libpam-sshauth version with commit revision 115+

Vendor Advisory: http://www.debian.org/security/2016/dsa-3567

Restart Required: No

Instructions:

1. Update libpam-sshauth package: sudo apt-get update && sudo apt-get install --only-upgrade libpam-sshauth
2. Verify the fix by checking the version or testing authentication
3. No service restart needed as PAM modules are loaded dynamically

🔧 Temporary Workarounds

Disable libpam-sshauth in PAM configuration

linux

Remove or comment out libpam-sshauth from PAM authentication configuration files

sudo sed -i 's/^auth.*pam_sshauth.so/#&/' /etc/pam.d/*
sudo systemctl restart sshd

Use alternative SSH authentication methods

linux

Configure SSH to use other PAM modules or key-based authentication instead of libpam-sshauth

sudo apt-get install libpam-ssh
Configure /etc/ssh/sshd_config to use alternative methods

🧯 If You Can't Patch

  • Remove libpam-sshauth package entirely: sudo apt-get remove libpam-sshauth
  • Implement network segmentation to restrict SSH access to trusted sources only

🔍 How to Verify

Check if Vulnerable:

Check if libpam-sshauth is installed: dpkg -l | grep libpam-sshauth
Check PAM configs: grep -r pam_sshauth /etc/pam.d/

Check Version:

dpkg -l libpam-sshauth | grep ^ii | awk '{print $3}'

Verify Fix Applied:

Verify package version: dpkg -l libpam-sshauth | grep ^ii
Test authentication with invalid credentials to ensure it's rejected

📡 Detection & Monitoring

Log Indicators:

  • Failed authentication attempts followed by successful logins from same source
  • Authentication logs showing successful logins without proper credential validation
  • SSH logs with authentication bypass patterns

Network Indicators:

  • Unusual SSH connections from unexpected sources
  • Multiple authentication attempts with different usernames from same IP

SIEM Query:

source="auth.log" OR source="secure" ("pam_sshauth" OR "sshd") ("Accepted" OR "success") NOT ("publickey" OR "key") | stats count by src_ip, user

🔗 References

📤 Share & Export