CVE-2021-43411
📋 TL;DR
This CVE describes a privilege escalation vulnerability in GNU Hurd where during execution of setuid binaries, there's a timing window where the process has elevated privileges but remains accessible through its old process port. This allows attackers to gain full root access. Only systems running vulnerable versions of GNU Hurd are affected.
💻 Affected Systems
- GNU Hurd
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Full root privilege escalation allowing complete system compromise, data theft, persistence establishment, and lateral movement.
Likely Case
Local privilege escalation from any user account to root, enabling unauthorized administrative access.
If Mitigated
Minimal impact if proper access controls and monitoring are in place, though privilege escalation would still be possible.
🎯 Exploit Status
Requires local access and ability to execute code. Exploitation depends on timing race conditions.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.9 20210404-9 and later
Vendor Advisory: https://lists.gnu.org/archive/html/bug-hurd/2021-05/msg00079.html
Restart Required: Yes
Instructions:
1. Update GNU Hurd to version 0.9 20210404-9 or later. 2. Apply the patch that uses UIDs for evaluating permissions. 3. Reboot the system to ensure all processes use the patched kernel.
🔧 Temporary Workarounds
Disable setuid binaries
allRemove setuid permissions from binaries to prevent privilege escalation vector
find / -type f -perm -4000 -exec chmod u-s {} \;
Restrict user access
allLimit user accounts and implement strict access controls
🧯 If You Can't Patch
- Restrict user accounts to trusted individuals only
- Implement strict monitoring of privilege escalation attempts and process creation
🔍 How to Verify
Check if Vulnerable:
Check GNU Hurd version: uname -a should show version earlier than 0.9 20210404-9
Check Version:
uname -a
Verify Fix Applied:
Verify version is 0.9 20210404-9 or later: uname -a
📡 Detection & Monitoring
Log Indicators:
- Unusual process privilege escalation
- Multiple failed setuid executions
- Unexpected root process creation
Network Indicators:
- None - this is a local privilege escalation
SIEM Query:
process where parent_process_name contains 'setuid' and user != 'root' and new_user = 'root'
🔗 References
- https://lists.gnu.org/archive/html/bug-hurd/2021-05/msg00079.html
- https://salsa.debian.org/hurd-team/hurd/-/blob/4d1b079411e2f40576e7b58f9b5b78f733a2beda/debian/patches/0034-proc-Use-UIDs-for-evaluating-permissions.patch
- https://www.mail-archive.com/bug-hurd%40gnu.org/msg32112.html
- https://lists.gnu.org/archive/html/bug-hurd/2021-05/msg00079.html
- https://salsa.debian.org/hurd-team/hurd/-/blob/4d1b079411e2f40576e7b58f9b5b78f733a2beda/debian/patches/0034-proc-Use-UIDs-for-evaluating-permissions.patch
- https://www.mail-archive.com/bug-hurd%40gnu.org/msg32112.html