Every check Bulwark runs
Each check has its own page: what the finding means, why it matters, and how to fix it, with the exact commands. In the app, open an issue and choose Details to land on the matching page.
96 of 96 checks
Secrets & credentials 10
Tokens and keys in plain text, unprotected SSH keys, keys leaked into AI sessions.
- HighA secret is exposed in AI assistant context
BLWK-AI-001 - HighA secret-bearing AI file is not covered by .gitignore
BLWK-AI-016 - HighAn MCP server connects to a remote endpoint with a plaintext token
BLWK-AI-018 - HighA long-lived AWS access key is stored on disk
BLWK-CRED-001 - HighGit stores passwords and tokens in plain text
BLWK-CRED-002 - HighSSH private key is not passphrase-protected
BLWK-SSH-012 - MediumAn AI credential file is readable by other users
BLWK-AI-015 - MediumDocker registry logins are stored in the config file
BLWK-CRED-003 - MediumA credential file can be read by other users
BLWK-CRED-004 - LowSSH private key passphrase status could not be determined
BLWK-SSH-013
Supply chain 6
Packages, startup hooks and MCP servers that can run code on this machine.
- CriticalAn MCP server runs a privileged or host-mounting container
BLWK-AI-019 - CriticalTraces of the LiteLLM 1.107.0 credential stealer were found
BLWK-ROOTKIT-002 - HighAn MCP server runs an unpinned package from a registry
BLWK-AI-003 - HighAn MCP server uses mcp-remote (critical command-injection ≤ 0.1.15)
BLWK-AI-004 - HighAn MCP server launches via a shell interpreter
BLWK-AI-005 - MediumA Python startup hook runs code in every Python process
BLWK-PERSIST-005
Exposed services 4
Dev databases and services other machines can reach, and the firewall.
AI coding agents 15
Hooks, permissions and auto-approve settings a prompt injection could abuse.
- CriticalProject-supplied agent hooks run shell commands automatically
BLWK-AI-002 - CriticalVS Code chat auto-approve ("YOLO mode") is enabled
BLWK-AI-009 - HighAn agent permission allowlist permits arbitrary command execution
BLWK-AI-006 - HighAn agent is configured to bypass all permission prompts
BLWK-AI-007 - HighProject MCP servers are set to auto-enable without prompting
BLWK-AI-008 - HighVS Code Workspace Trust is disabled
BLWK-AI-010 - HighA VS Code task runs automatically when the folder is opened
BLWK-AI-011 - HighAn instruction file contains hidden bidirectional Unicode controls
BLWK-AI-012 - HighAn AI config overrides the API base URL to a non-official host
BLWK-AI-014 - HighCodex is configured with no approval and full filesystem access
BLWK-AI-017 - HighA filesystem MCP server is granted an over-broad root
BLWK-AI-020 - HighAn AI agent's command sandbox is turned off
BLWK-AI-021 - HighThe account that runs AI agents can become root without a password
BLWK-AI-022 - MediumAn instruction file contains prompt-injection style directives
BLWK-AI-013 - MediumAn MCP server's tools run without asking for approval
BLWK-AI-023
SSH 11
How this machine accepts SSH logins.
- CriticalSSH allows empty passwords
BLWK-SSH-003 - HighSSH password authentication is enabled
BLWK-SSH-001 - HighSSH root login is permitted
BLWK-SSH-002 - MediumSSH TCP forwarding/tunneling is enabled
BLWK-SSH-005 - MediumSSH permits user-set environment variables
BLWK-SSH-006 - MediumSSH tun-device (layer 2/3) tunneling is enabled
BLWK-SSH-007 - MediumSSH StrictModes is disabled
BLWK-SSH-008 - MediumSSH GatewayPorts exposes forwarded ports to the network
BLWK-SSH-009 - LowSSH X11 forwarding is enabled
BLWK-SSH-004 - LowSSH agent forwarding is enabled
BLWK-SSH-010 - LowSSH allows an excessive number of authentication attempts per connection
BLWK-SSH-011
Compromise indicators 16
Malware, suspicious startup programs, tampering and changed system files.
- CriticalFile modified since baseline: ‹path›
BLWK-FIM-001 - CriticalCredential file modified since baseline: ‹path›
BLWK-FIM-004 - CriticalCredential file deleted since baseline: ‹path›
BLWK-FIM-005 - HighFile deleted since baseline: ‹path›
BLWK-FIM-002 - HighCould not verify credential file: ‹path›
BLWK-FIM-008 - Highsystemd unit runs a tunneling tool
BLWK-PERSIST-001 - Highsystemd unit posts to a messaging API on start
BLWK-PERSIST-002 - HighUnexpected LaunchAgent/LaunchDaemon found
BLWK-PERSIST-003 - HighUnexpected registry Run-key entry found
BLWK-PERSIST-004 - HighA network interface is running in promiscuous mode
BLWK-ROOTKIT-001 - MediumClamAV signature database is stale
BLWK-AV-002 - MediumShell history recording is suppressed
BLWK-EVASION-001 - MediumCould not verify file integrity: ‹path›
BLWK-FIM-007 - LowClamAV is not installed
BLWK-AV-001 - LowCredential file not covered by the baseline: ‹path›
BLWK-FIM-006 - InfoNot covered by the file-integrity baseline: ‹path›
BLWK-FIM-003
OS hardening 34
Kernel settings, file permissions, accounts and logging.
- CriticalCron entry runs a downloader piped to a shell
BLWK-ACCT-001 - CriticalA sensitive system file is world-writable
BLWK-FS-001 - Critical/etc/shadow is world-readable
BLWK-FS-002 - HighAddress space layout randomization is disabled or partial
BLWK-KERNEL-004 - HighUnprivileged users can load BPF programs into the kernel
BLWK-KERNEL-006 - HighA sudoers entry allows passwordless root
BLWK-PRIV-001 - Mediumptrace scope allows tracing sibling processes
BLWK-KERNEL-001 - MediumNo mandatory access control framework is enforcing
BLWK-KERNEL-003 - MediumMagic SysRq key is fully enabled
BLWK-KERNEL-005 - Mediumperf_event_paranoid allows unprivileged kernel profiling
BLWK-KERNEL-007 - MediumCore dumps of setuid processes are not restricted
BLWK-KERNEL-009 - MediumHardlink creation protection is disabled
BLWK-KERNEL-010 - MediumSymlink following protection is disabled
BLWK-KERNEL-011 - MediumICMP redirects are accepted
BLWK-KERNEL-014 - MediumIP source routing is enabled
BLWK-KERNEL-015 - MediumReverse-path filtering is disabled
BLWK-KERNEL-018 - MediumTCP SYN cookies are disabled
BLWK-KERNEL-019 - Mediumauditd is not installed
BLWK-LOG-001 - MediumNo GRUB boot loader password is set
BLWK-PRIV-002 - LowPassword maximum age is excessively long
BLWK-ACCT-002 - LowPassword minimum age is zero
BLWK-ACCT-003 - LowPassword hashing rounds are not explicitly configured
BLWK-ACCT-004 - LowDefault UMASK is not explicitly configured
BLWK-ACCT-005 - LowKernel pointers are exposed to unprivileged users
BLWK-KERNEL-002 - Lowkexec can load an unsigned, arbitrary kernel image
BLWK-KERNEL-008 - LowFIFO creation protection in sticky directories is disabled
BLWK-KERNEL-012 - LowRegular-file creation protection in sticky directories is disabled
BLWK-KERNEL-013 - LowThis host sends ICMP redirects
BLWK-KERNEL-016 - LowMartian packet logging is disabled
BLWK-KERNEL-017 - LowKernel module not blacklisted: ‹module›
BLWK-KERNEL-020 - LowKernel module not blacklisted: usb-storage
BLWK-KERNEL-021 - LowSystem logs are not forwarded off-box
BLWK-LOG-002 - LowKernel-level process accounting is not installed
BLWK-LOG-003 - InfoNo custom legal warning banner is set (/etc/‹file›)
BLWK-BANN-001