Skip to content

papadoxie/scanipy

Repository files navigation

📡 Scanipy

A powerful command-line tool to scan open source code-bases on GitHub for security patterns and vulnerabilities. Scanipy searches GitHub repositories for specific code patterns and optionally runs Semgrep or CodeQL analysis on discovered code.

Tests Coverage Python PyPI

🎯 Features

  • Smart Code Search: Search GitHub for specific code patterns across millions of repositories
  • Tiered Star Search: Prioritize popular, well-maintained repositories by searching in star tiers
  • Keyword Filtering: Filter results by keywords found in file contents
  • Semgrep Integration: Automatically clone and scan repositories with Semgrep
  • CodeQL Integration: Run CodeQL analysis for deep semantic security scanning
  • Resume Capability: Resume interrupted analysis from where it left off (Semgrep & CodeQL)
  • Custom Rules: Use built-in security rules or provide your own

🏆 Vulnerabilities Found

This section showcases real-world vulnerabilities discovered using Scanipy:

CVE ID Project Vulnerability Type Description Reporter
CVE-2025-61765 python-socketio Unsafe Pickle Deserialization Arbitrary Python code execution (RCE) through malicious pickle deserialization in certain multi-server deployments locus-x64

Found a vulnerability using Scanipy? We'd love to hear about it! Open an issue or PR to add your finding to this list.

⚡ Quick Start

# Install from PyPI
pip install scanipy-cli

# Or clone and setup from source
git clone https://github.com/papadoxie/scanipy.git
cd scanipy
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# Set GitHub token
export GITHUB_TOKEN="your_token_here"

# Search for code patterns (if installed via pip)
scanipy --query "extractall" --language python

# Or run from source
python scanipy.py --query "extractall" --language python

# Run Semgrep analysis
scanipy --query "extractall" --language python --run-semgrep

# Run CodeQL analysis
scanipy --query "extractall" --language python --run-codeql

📚 Documentation

Full documentation is available in the docs/ directory:

Document Description
Installation Setup instructions and prerequisites
Usage Guide Basic and advanced usage
Semgrep Integration Running Semgrep security analysis
CodeQL Integration Running CodeQL semantic analysis
CLI Reference Complete command-line options
Examples Real-world usage examples
Development Contributing and development setup

Building the Docs

# Install MkDocs
pip install mkdocs mkdocs-material

# Serve locally
mkdocs serve

# Build static site
mkdocs build

🛠️ Development

# Setup development environment
make dev

# Run tests
make test

# Run all checks (lint, typecheck, test)
make check

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes and ensure tests pass (make check)
  4. Commit and push to your branch
  5. Open a Pull Request

See Development Guide for detailed instructions.

🙏 Acknowledgments


Made with ❤️ for the security research community

About

A tool to scan open source code-bases for simple patterns

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages