| Crates.io | vulfy |
| lib.rs | vulfy |
| version | 0.1.0 |
| created_at | 2025-06-24 18:32:26.124695+00 |
| updated_at | 2025-06-24 18:32:26.124695+00 |
| description | Cross-language CLI-based package version scanner for detecting known vulnerabilities |
| homepage | https://github.com/MindPatch/Vulfy |
| repository | https://github.com/MindPatch/Vulfy |
| max_upload_size | |
| id | 1724857 |
| size | 301,705 |
Vulfy is a lightning-fast vulnerability scanner that checks your project dependencies for known security issues across multiple programming languages. Built with Rust for maximum performance, it integrates with the OSV.dev database to provide accurate, up-to-date vulnerability information.
Vulfy now includes a powerful automation system for continuous security monitoring of your Git repositories.
# Initialize automation configuration with examples
vulfy automation init --with-examples
# Validate your configuration
vulfy automation validate
# Run a manual scan
vulfy automation run
# Start the scheduler (foreground mode)
vulfy automation start --foreground
# Check status and configuration
vulfy automation status
# Monitor multiple repositories
[[repositories]]
name = "my-web-app"
url = "https://github.com/user/my-web-app.git"
branches = ["main", "develop", "staging"]
ecosystems = ["npm", "pypi"]
[repositories.credentials]
username = "git"
token = "your_github_token_here"
# Schedule daily scans at 2:00 AM UTC
[schedule]
frequency = "daily"
time = "02:00"
timezone = "UTC"
# Discord webhook notifications
[[notifications.webhooks]]
name = "Security Alerts"
url = "https://discord.com/api/webhooks/..."
webhook_type = "discord"
enabled = true
# Security policies for smart filtering
[[policies]]
name = "Critical Authentication Issues"
enabled = true
[policies.conditions]
title_contains = ["unauth", "authentication", "bypass"]
severity = ["high", "critical"]
[policies.actions]
notify = true
priority = "critical"
custom_message = "π¨ Critical auth vulnerability!"
vulfy automation [COMMAND]
COMMANDS:
init Initialize automation configuration
start Start the automation scheduler
stop Stop the automation scheduler
run Run a manual scan using automation config
status Show automation status and next scheduled run
validate Validate automation configuration
OPTIONS:
-c, --config <PATH> Configuration file [default: vulfy-automation.toml]
-w, --workspace <PATH> Workspace for cloning repos [default: vulfy-workspace]
--with-examples Create config with example policies
--foreground Run scheduler in foreground mode
The policy engine supports advanced vulnerability filtering:
Example policies included:
# Download the latest release for your platform
curl -LO https://github.com/mindPatch/vulfy/releases/latest/download/vulfy-linux-x86_64.tar.gz
tar -xzf vulfy-linux-x86_64.tar.gz
sudo mv vulfy /usr/local/bin/
git clone https://github.com/mindPatch/vulfy.git
cd vulfy
cargo build --release
sudo cp target/release/vulfy /usr/local/bin/
cargo install vulfy
# Scan current directory with beautiful table output
vulfy scan packages
# Scan specific directory
vulfy scan packages --path /path/to/project
# JSON output for programmatic use
vulfy scan packages --format json --output security-report.json
# SARIF format for GitHub Security tab
vulfy scan packages --format sarif --output vulfy.sarif
# Exit with error code if high-severity vulnerabilities found
vulfy scan packages --high-only --quiet
# Scan only the new ecosystems we just added!
vulfy scan packages --ecosystems vcpkg,packagist,nuget
vulfy scan packages [OPTIONS]
OPTIONS:
-p, --path <PATH> Where to scan [default: current directory]
-f, --format <FORMAT> Output format: table, json, csv, summary, sarif
-o, --output <FILE> Save to file instead of stdout
-e, --ecosystems <LIST> Only scan specific ecosystems (npm,pypi,crates.io,maven,go,rubygems,vcpkg,packagist,nuget)
-q, --quiet Shut up and scan
--high-only Only show the scary vulnerabilities
--no-recursive Don't dig into subdirectories
--no-dev-deps Skip development dependencies
| Ecosystem | Files We Hunt | Status |
|---|---|---|
| π¦ npm | package-lock.json, npm-shrinkwrap.json, yarn.lock, package.json, pnpm-lock.yaml |
β |
| π Python | requirements.txt, Pipfile, Pipfile.lock, poetry.lock, pyproject.toml, setup.py, setup.cfg, environment.yml (conda) |
β |
| π¦ Rust | Cargo.lock, Cargo.toml |
β |
| β Java | pom.xml, build.gradle, build.gradle.kts, ivy.xml |
β |
| πΉ Go | go.mod, go.sum, go.work, go.work.sum, vendor/modules.txt |
β |
| π Ruby | Gemfile.lock, Gemfile, gems.rb, *.gemspec |
β |
| βοΈ C/C++ | vcpkg.json, CMakeLists.txt, conanfile.txt, conanfile.py |
π NEW! |
| π PHP | composer.json, composer.lock, phpunit.xml, phpunit.xml.dist |
π NEW! |
| π· .NET | *.csproj, *.vbproj, *.fsproj, packages.config, Directory.Build.props, Directory.Packages.props, *.nuspec |
π NEW! |
π Scanning for package files...
π¦ Found 6 package files across 4 ecosystems
π‘οΈ VULNERABILITY REPORT
βββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββ¬βββββββββββ¬ββββββββββββββββββ¬βββββββ
β Title β CVE ID β Severity β Package β Year β
βββββββββββββββββββββββββββββββββββββββββββΌβββββββββββββββΌβββββββββββΌββββββββββββββββββΌβββββββ€
β Remote Code Execution in lodash β CVE-2021-123 β π₯ High β lodash@4.17.0 β 2021 β
β Path Traversal in express β CVE-2022-456 β π‘ Mediumβ express@4.16.0 β 2022 β
β SQL Injection in sequelize β CVE-2020-789 β π₯ High β sequelize@5.0.0 β 2020 β
βββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββ΄βββββββββββ΄ββββββββββββββββββ΄βββββββ
π SCAN SUMMARY
β’ Total packages scanned: 42
β’ Vulnerable packages: 8
β’ Total vulnerabilities: 12
β’ π₯ High severity: 4
β’ π‘ Medium severity: 6
β’ π’ Low severity: 2
{
"scan_id": "abc123",
"timestamp": "2024-01-15T10:30:00Z",
"scanned_path": "/path/to/project",
"summary": {
"total_packages": 42,
"vulnerable_packages": 8,
"total_vulnerabilities": 12,
"severity_counts": {
"critical": 0,
"high": 4,
"medium": 6,
"low": 2
}
},
"vulnerabilities": [
{
"id": "CVE-2021-123",
"title": "Remote Code Execution in lodash",
"severity": "HIGH",
"package": "lodash",
"version": "4.17.0",
"ecosystem": "npm",
"published": "2021-05-15T00:00:00Z",
"modified": "2021-05-20T00:00:00Z",
"aliases": ["GHSA-abc-123"],
"summary": "A vulnerability in lodash allows remote code execution...",
"details": "...",
"affected_versions": ["<4.17.21"],
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-abc-123"
}
]
}
]
}
Create a .vulfy.toml file in your project root for custom settings:
[scan]
# Default ecosystems to scan
ecosystems = ["npm", "pypi", "crates.io"]
# Severity threshold (vulnerabilities below this level are ignored)
min_severity = "medium"
# Skip development dependencies
skip_dev_deps = true
# Custom ignore patterns
ignore_paths = [
"node_modules",
"vendor",
".git"
]
[output]
# Default output format
format = "table"
# Color output (auto, always, never)
color = "auto"
[api]
# OSV.dev API settings
timeout = 30
max_concurrent = 10
retry_attempts = 3
π³ Container Scanning - Docker image vulnerability detection
Have feature requests? Open an issue and let's discuss!
Vulfy is built with performance and reliability in mind:
We welcome contributions! Here's how to get started:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)git clone https://github.com/your-username/vulfy.git
cd vulfy
cargo build
cargo test
cargo clippyFound a bug or have a feature idea? We'd love to hear from you!
This project is licensed under the MIT License - see the LICENSE file for details.