Contents
Vuls checks the packages installed on a server and tells you which ones have known vulnerabilities. It is open source software that started at Future Architect in Japan, and it can also use JVN, Japan’s vulnerability database.
This review is for people who run their own Linux servers. After reading it, you can do the following:
- Scan your own Linux machine without SSH
- Read the results as a list or in a terminal UI
- Understand how Vuls scans other servers over SSH
What Vuls is for
The official README describes Vuls this way:
- It tells you which vulnerabilities affect your systems
- It tells you which servers are affected
- It detects vulnerabilities automatically, so nothing gets overlooked
- It can produce reports on a schedule with cron or similar tools
Vuls uses NVD, JVN, and each distribution’s OVAL data, among other sources. The official support table lists Linux distributions such as Ubuntu, Debian, RHEL, AlmaLinux, Rocky Linux, and Amazon Linux, plus FreeBSD, Windows, and macOS as scan targets. Check the table for supported versions.
Three ways to scan
The official docs describe three scan methods.
| Method | How it works | Good for |
|---|---|---|
| Remote scan | One machine running Vuls connects to each target over SSH and runs commands | Checking many servers from one place |
| Local scan | Vuls runs on the target itself and issues commands locally, without SSH | When you don’t want a central server to SSH into targets |
| Server mode | Vuls listens as an HTTP server, and targets send their collected software information over HTTP | When you don’t want a scanner on the targets |
Remote scans don’t support SSH password authentication. Set up key-based authentication and add each target’s host key to known_hosts before scanning.
Try it safely with a local scan
Start with one Linux machine of your own, or a virtual machine you built. A local scan doesn’t connect to other servers, so you can’t hit the wrong target.
-
Follow the official guide to install with vulsctl on the host and run
sudo bash install.sh. Read the script before you run it. -
Fetch the vulnerability databases with
update-all.sh. Fetching everything takes a long time, so the docs recommend fetching only what you need. -
Create
config.tomlin your home directory with the following content.port = "local"selects local scan mode.[servers] [servers.localhost] host = "localhost" port = "local" -
Run
vuls configtestto check the configuration and the environment. -
Run
vuls scanto scan. -
Run
vuls report -format-listto see the results.
Read the results
vuls report has options for the output format. These come from the official tutorial.
| Command | Shows |
|---|---|
vuls report -format-one-line-text |
One line per server with counts |
vuls report -format-list |
A list of CVE IDs and severities |
vuls report -format-full-text |
Details and reference URLs for each CVE |
vuls report -format-list -lang ja |
The list using Japanese information |
vuls tui |
A terminal screen for browsing results |
Each CVE in the list comes with a CVSS score. Start with the highest scores and consider updating any packages that have fixes available.
Choose how heavy the scan is
The scanMode setting in config.toml controls the load on the target and the privileges needed.
fastscans without root privileges and puts almost no load on the targetfast-rootscans with root privileges, also with almost no loadofflineworks withfastorfast-rootto scan servers that have no internet access
Cautions
- Only connect over SSH to servers you manage or have written permission to scan. A typo in
hostinconfig.tomlsends connections to an unrelated machine. - An SSH key used for scanning often has access to many servers. Create a dedicated key and user for scanning.
- The official site links to Japanese pages, but as of October 24, 2026, many of them did not load. This review is based on the English documentation.
- Refresh the vulnerability databases regularly. Otherwise new CVEs won’t appear in your results.
Read next
Sources
- Official repository READMEgithub.com/future-architect/vuls
- Docs: Supported OSvuls.io/docs/en/supported-os.html
- Docs: Remote, Local, One-liner scanvuls.io/docs/en/architecture-remote-local.html
- Docs: Tutorial - Local Scan Modevuls.io/docs/en/tutorial-local-scan.html
- Docs: Tutorial - Remote Scan Modevuls.io/docs/en/tutorial-remote-scan.html
- Docs: Install with vulsctl on hostvuls.io/docs/en/install-with-vulsctl-host.html
- Docs: Scan modes (fast, fast-root, offline)vuls.io/docs/en/architecture-fast-deep.html
Checked on 2026-10-24
Similar tools
OSV-Scanner
Impact Local onlyA command-line tool from Google that reads your project's dependencies and checks them against the OSV.dev vulnerability database.
- Purpose
- Defense
- Type
- Command line
- Difficulty
- Beginner
- License
- PermissiveApache-2.0
- Category
- Vulnerability scanning
Trivy
Impact Local onlyA scanner that finds vulnerabilities, misconfigurations, and embedded secrets in container images, code, and Kubernetes.
- Purpose
- Defense
- Type
- Command line
- Difficulty
- Beginner
- License
- PermissiveApache-2.0
- Category
- Vulnerability scanning / Containers and cloud
Wazuh
Impact Local onlyA free security platform (SIEM/XDR) that collects logs, configuration, and vulnerability data from agents on your endpoints and shows it all in one dashboard.
- Purpose
- Defense
- Type
- Self-hosted server
- Difficulty
- Advanced
- License
- CopyleftGPL-2.0(一部の構成要素は Apache-2.0)
- Category
- Vulnerability scanning / Forensics