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.
- 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
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.
# 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-codeqlFull 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 |
# Install MkDocs
pip install mkdocs mkdocs-material
# Serve locally
mkdocs serve
# Build static site
mkdocs build# Setup development environment
make dev
# Run tests
make test
# Run all checks (lint, typecheck, test)
make check- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and ensure tests pass (
make check) - Commit and push to your branch
- Open a Pull Request
See Development Guide for detailed instructions.
- GitHub API for code search capabilities
- Semgrep for static analysis
- CodeQL for semantic analysis
Made with ❤️ for the security research community