Skip to content

MindPatch/Vulfy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

67 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Vulfy Logo

๐Ÿบ Vulfy

Fast, cross-language vulnerability scanner that doesn't mess around.

Release License: MIT Rust CI


๐Ÿš€ What is Vulfy?

Vulfy is a lightning-fast vulnerability scanner that checks your project dependencies for known security issues across 9 programming languages. Built with Rust for maximum performance, it integrates with the OSV.dev database to provide accurate, up-to-date vulnerability information.

โœจ Key Features

  • ๐Ÿ”ฅ Lightning Fast - Async Rust performance with concurrent scanning
  • ๐ŸŒ Multi-Ecosystem Support - npm, Python, Rust, Java, Go, Ruby, C/C++, PHP, .NET
  • ๐Ÿ“Š Multiple Output Formats - Table, JSON, CSV, SARIF for different use cases
  • ๐ŸŽฏ OSV.dev Integration - Real vulnerability data from Google's Open Source Vulnerabilities database
  • โšก Zero Configuration - Works out of the box, configure only what you need
  • ๐Ÿ”„ CI/CD Ready - Perfect exit codes and formats for automated pipelines
  • ๐Ÿค– Automation & Monitoring - Continuous Git repository monitoring with smart notifications
  • ๐Ÿ“‹ Advanced Policy Engine - Custom vulnerability filtering and security policies
  • ๐Ÿ”” Multi-Platform Notifications - Discord, Slack, and webhook integrations

๐Ÿ“š Documentation

๐Ÿ“– Complete Documentation - Comprehensive guides, tutorials, and API reference

Quick Navigation


๐Ÿ“ฆ Installation

Option 1: Pre-built Binaries (Recommended)

# Linux/WSL
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/

# macOS (Intel)
curl -LO https://github.com/mindPatch/vulfy/releases/latest/download/vulfy-macos-x86_64.tar.gz
tar -xzf vulfy-macos-x86_64.tar.gz
sudo mv vulfy /usr/local/bin/

# macOS (Apple Silicon)
curl -LO https://github.com/mindPatch/vulfy/releases/latest/download/vulfy-macos-aarch64.tar.gz
tar -xzf vulfy-macos-aarch64.tar.gz
sudo mv vulfy /usr/local/bin/

Option 2: Using Cargo

cargo install vulfy

Option 3: From Source

git clone https://github.com/mindPatch/vulfy.git
cd vulfy
cargo build --release
sudo cp target/release/vulfy /usr/local/bin/

Verify Installation:

vulfy --version
# Should output: vulfy 0.1.0

๐Ÿƒโ€โ™‚๏ธ Quick Start

Basic Vulnerability Scan

# Scan current directory
vulfy scan packages

# Scan specific directory
vulfy scan packages --path /path/to/project

# Only show high-severity vulnerabilities
vulfy scan packages --high-only

Generate Reports

# JSON for automation/CI
vulfy scan packages --format json --output security-report.json

# CSV for spreadsheet analysis
vulfy scan packages --format csv --output vulnerabilities.csv

# SARIF for GitHub Security tab
vulfy scan packages --format sarif --output vulfy.sarif

CI/CD Integration

# Fail build if high-severity vulnerabilities found
vulfy scan packages --high-only --quiet || exit 1

# Scan specific ecosystems only
vulfy scan packages --ecosystems npm,pypi --no-dev-deps

๐ŸŽฏ Supported Ecosystems

Ecosystem Package Files Status
๐Ÿ“ฆ npm package-lock.json, yarn.lock, pnpm-lock.yaml, package.json โœ…
๐Ÿ Python requirements.txt, Pipfile.lock, poetry.lock, pyproject.toml โœ…
๐Ÿฆ€ Rust Cargo.lock, Cargo.toml โœ…
โ˜• Java pom.xml, build.gradle, build.gradle.kts โœ…
๐Ÿน Go go.mod, go.sum, go.work โœ…
๐Ÿ’Ž Ruby Gemfile.lock, Gemfile, *.gemspec โœ…
โš™๏ธ C/C++ vcpkg.json, CMakeLists.txt, conanfile.txt ๐Ÿ†• NEW!
๐Ÿ˜ PHP composer.json, composer.lock ๐Ÿ†• NEW!
๐Ÿ”ท .NET *.csproj, packages.config, *.nuspec ๐Ÿ†• NEW!

๐Ÿ“‹ Example Output

Beautiful Table Format (Default)

๐Ÿ” 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  โ”‚ [email protected]   โ”‚ 2021 โ”‚
โ”‚ Path Traversal in express              โ”‚ CVE-2022-456 โ”‚ ๐ŸŸก Mediumโ”‚ [email protected]  โ”‚ 2022 โ”‚
โ”‚ SQL Injection in sequelize             โ”‚ CVE-2020-789 โ”‚ ๐Ÿ”ฅ High  โ”‚ [email protected] โ”‚ 2020 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š SCAN SUMMARY
โ€ข Total packages scanned: 42
โ€ข Vulnerable packages: 8
โ€ข Total vulnerabilities: 12
โ€ข ๐Ÿ”ฅ High severity: 4
โ€ข ๐ŸŸก Medium severity: 6
โ€ข ๐ŸŸข Low severity: 2

๐Ÿ“– See All Output Formats - JSON, CSV, SARIF examples


๐Ÿค– Automation & Monitoring

Vulfy includes a powerful automation system for continuous security monitoring of Git repositories.

Key Automation Features

  • ๐Ÿ“‚ Multi-Repository Monitoring - Track multiple Git repos with branch-specific scanning
  • โฐ Flexible Scheduling - Hourly, daily, weekly, or custom cron expressions
  • ๐Ÿ”” Smart Notifications - Rich Discord/Slack alerts with severity-based filtering
  • ๐Ÿ“‹ Advanced Policy Engine - Custom vulnerability filtering with keyword matching
  • ๐Ÿ” Authentication Support - GitHub tokens, SSH keys, private repository access
  • ๐Ÿ—๏ธ Ecosystem Filtering - Per-repository ecosystem targeting for focused scans

Quick Automation Setup

# Initialize automation with example configuration
vulfy automation init --with-examples

# Validate configuration
vulfy automation validate

# Run manual scan using automation config
vulfy automation run

# Start continuous monitoring
vulfy automation start --foreground

Example Configuration

# Monitor multiple repositories
[[repositories]]
name = "my-web-app"
url = "https://github.com/user/my-web-app.git"
branches = ["main", "develop"]
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

# Advanced security policies
[[policies]]
name = "Critical Authentication Issues"
enabled = true

[policies.conditions]
title_contains = ["authentication", "auth", "bypass"]
severity = ["high", "critical"]

[policies.actions]
notify = true
priority = "critical"
custom_message = "๐Ÿšจ Critical auth vulnerability detected!"

๐Ÿ“– Complete Automation Guide - Detailed setup and configuration


๐Ÿ› ๏ธ Usage & Configuration

Command Line Options

vulfy scan packages [OPTIONS]

OPTIONS:
    -p, --path <PATH>              Directory to scan [default: current directory]
    -f, --format <FORMAT>          Output format: table, json, csv, summary, sarif
    -o, --output <FILE>            Save results to file
    -e, --ecosystems <LIST>        Only scan specific ecosystems (comma-separated)
    -q, --quiet                    Suppress progress output
    --high-only                    Show only high/critical severity vulnerabilities
    --no-recursive                 Don't scan subdirectories
    --no-dev-deps                  Skip development dependencies

Project Configuration

Create .vulfy.toml in your project root:

[scan]
ecosystems = ["npm", "pypi", "crates.io"]
min_severity = "medium"
skip_dev_deps = true
ignore_paths = ["node_modules", "vendor", ".git"]

[output]
format = "table"
color = "auto"

[api]
timeout = 30
max_concurrent = 10
retry_attempts = 3

๐Ÿ“– Full Configuration Reference - Complete schema documentation


๐Ÿš€ Roadmap

โœ… Recently Added

  • ๐Ÿค– Complete Automation System - Git repository monitoring with scheduling
  • ๐Ÿ”” Multi-Platform Notifications - Discord, Slack, and webhook integrations
  • ๐Ÿ“‹ Advanced Policy Engine - Custom vulnerability filtering and security policies
  • ๐Ÿ†• 3 New Ecosystems - C/C++, PHP, and .NET support

๐Ÿ”„ Coming Soon

  • ๐Ÿ”ง Fix Mode - Automatically update vulnerable packages to safe versions
  • ๐Ÿ“ˆ Trend Analysis - Track vulnerability trends over time
  • โšก Watch Mode - Real-time monitoring for new vulnerabilities
  • ๐Ÿ’พ Database Storage - Historical scan data and analytics

๐Ÿ”ฎ Future Plans

  • ๐Ÿณ Container Scanning - Docker image vulnerability detection
  • ๐ŸŒ Web Dashboard - Centralized security monitoring interface
  • ๐Ÿ”Œ Plugin System - Extensible architecture for custom integrations

Have feature requests? Open an issue and let's discuss!


๐Ÿ—๏ธ Architecture & Performance

Vulfy is built with performance and reliability as core principles:

  • โšก Async-First Design - Built on Tokio for maximum concurrency
  • ๐Ÿ”ง Strategy Pattern - Pluggable parsers for different package managers
  • ๐Ÿšฆ Rate Limiting - Respectful API usage with configurable limits
  • ๐Ÿ’พ Memory Efficient - Streaming parsers for large projects
  • ๐Ÿ›ก๏ธ Error Resilient - Graceful handling of network and parsing errors
  • ๐Ÿ” Semantic Versioning - Proper version comparison using semver crate

๐Ÿ“– Architecture Deep Dive - Technical implementation details


๐Ÿค Contributing

We welcome contributions! Whether it's bug fixes, new features, or ecosystem support.

Quick Start

git clone https://github.com/mindPatch/vulfy.git
cd vulfy
cargo build
cargo test

Contribution Guidelines

  • Follow Rust best practices and run cargo clippy
  • Add tests for new features
  • Update documentation for user-facing changes
  • Keep commit messages clear and descriptive

๐Ÿ“– Contributing Guide - Detailed contribution instructions


๐Ÿ†˜ Support & Community

Getting Help

Quick Troubleshooting

  • "No package files found" - Ensure you're in a project directory with supported package files
  • "Network connection failed" - Check internet connectivity; Vulfy needs access to OSV.dev API
  • "Permission denied" - Make sure vulfy binary is executable: chmod +x vulfy

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • OSV.dev - Comprehensive vulnerability database
  • Rust Community - Amazing crates and tooling ecosystem
  • Contributors - Everyone who makes Vulfy better

Made with โค๏ธ and โ˜• by mindpatch

โญ Star us on GitHub | ๐Ÿ› Report Issues | ๐Ÿ’ฌ Discussions

About

๐Ÿบ Vulfy โ€“ Fast Rust based package version scanner

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages