OS auto-updates enabled
What this checks
Checks that the operating system is configured to receive and apply automatic security updates. On macOS, checks softwareupdate automatic update settings. On Linux (Debian/Ubuntu), checks that unattended-upgrades is installed and configured. A self-hosted AI server that doesn't apply OS security patches is exposed to known CVEs that are trivially exploitable.
Why it matters
Most self-hosted machines are set up once and left running. Without auto-updates, OS security patches are never applied and the gap between patch release and exploit availability has shrunk to days or hours. A Mac Mini or Ubuntu VPS running OpenClaw typically has SSH, a web server, and multiple services exposed. Any unpatched kernel or OpenSSL vulnerability on that host is a complete system compromise.
How to fix it
macOS
# Enable automatic updates and security responses:
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -bool true
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate CriticalUpdateInstall -bool true
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate ConfigDataInstall -bool true
# Or via System Settings โ General โ Software Update โ Automatic Updates (toggle on)
Ubuntu / Debian (unattended-upgrades)
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Verify:
cat /etc/apt/apt.conf.d/20auto-upgrades
# Should contain:
# APT::Periodic::Update-Package-Lists "1";
# APT::Periodic::Unattended-Upgrade "1";
Other Linux (RHEL/CentOS/Fedora)
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer
Technical details
| Field | Value |
|---|---|
| Control ID | NC-OS-001 |
| Domain | OS |
| Severity | High |
| Status | Expanded (Plugin only) |
| Data source | softwareupdate --list (macOS) / apt-config dump (Linux) |
| Mode | Mode 2 (System-level requires plugin expanded mode) |
| Introduced in | Library v0.2.0 |
False positive notes
Production servers that apply updates via a controlled CI/CD pipeline (not auto-updates) may intentionally have auto-updates disabled. If you have a managed update process, exclude this control with a reason.
Suppress this finding
clawvitals exclude NC-OS-001 reason "updates managed via Ansible playbook on weekly schedule"