code-pathfinder
Webseite · Dokumentation · Regelverzeichnis · MCP-Server · Blog
Schnellstart
Installation:
brew install shivasurya/tap/pathfinderEin Python-Projekt scannen (Regeln werden automatisch heruntergeladen):
pathfinder scan --ruleset python/all --project .Dockerfiles scannen:
pathfinder scan --ruleset docker/all --project .Keine Konfigurationsdateien, keine API-Schlüssel, keine Cloud-Konten. Ergebnisse in Sekunden im Terminal.
Related MCP server: CodeAudit Agent
Was ist Code Pathfinder?
Code Pathfinder ist eine Open-Source-Engine für statische Analysen, die einen Graphen Ihrer Codebasis erstellt und nachverfolgt, wie Daten durch sie fließen. Sie parst Quellcode in abstrakte Syntaxbäume, erstellt Aufrufgraphen über Dateien hinweg und führt Taint-Analysen durch, um Source-to-Sink-Schwachstellen zu finden, die sich über mehrere Dateien und Funktionsgrenzen erstrecken.
v2.0 führt die dateiübergreifende Datenflussanalyse ein: Verfolgen Sie Benutzereingaben von einem HTTP-Handler in einer Datei durch Hilfsfunktionen bis hin zu einer SQL-Abfrage in einer anderen Datei. Dies ist die Art von Analyse, die Mustervergleichswerkzeuge völlig übersehen.
Dateiübergreifende Taint-Analyse
Die meisten Open-Source-SAST-Tools arbeiten mit einzelnen Dateien. Code Pathfinder v2.0 verfolgt kontaminierte Daten über Dateigrenzen hinweg:
app.py:5 user_input = request.get("query") ← Source: user-controlled input
↓ calls
db.py:12 cursor.execute(query) ← Sink: SQL executionDie Engine erstellt einen Variablenabhängigkeitsgraphen (VDG) pro Funktion und verbindet sie dann durch zusammenfassende Informationen zur prozedurübergreifenden Taint-Übertragung. Wenn user_input in einen Funktionsparameter in einer anderen Datei fließt, breitet sich die Kontamination über den Aufrufgraphen bis zur Senke aus.
So funktioniert es
Source Code → Tree-sitter AST → Call Graph → Variable Dependency Graph → Taint Analysis → Findings
↓
Inter-procedural
Taint Summaries
(cross-file flows)Parsen: Tree-sitter erstellt ASTs für Python, Dockerfiles und Docker-Compose-Dateien
Indizieren: Extrahiert Funktionen, Aufrufstellen, Parameter und Zuweisungen in einen abfragbaren Aufrufgraphen
Analysieren: Erstellt VDGs pro Funktion, löst prozedurübergreifende Flüsse auf, führt Taint-Analyse durch
Erkennen: Python-basierte Sicherheitsregeln durchsuchen den Graphen nach Source-to-Sink-Pfaden
Berichten: Gibt Ergebnisse als Text, JSON, SARIF (GitHub-Code-Scanning) oder CSV aus
190 Sicherheitsregeln, einsatzbereit
Regeln werden automatisch vom CDN heruntergeladen. Kein Klonen des Repos oder Verwalten von Regeldateien erforderlich.
Sprache | Bündel | Regeln | Abdeckung |
django, flask, aws_lambda, cryptography, jwt, lang, deserialization, pyramid | 158 | SQL-Injection, RCE, SSRF, Path Traversal, XSS, Deserialisierung, Krypto-Fehlgebrauch, JWT-Schwachstellen | |
security, best-practice, performance | 37 | Root-Benutzer, offengelegte Geheimnisse, Image-Pinning, Multi-Stage-Builds, Layer-Optimierung | |
security, networking | 10 | Privilegierter Modus, Socket-Exposition, Capability-Eskalation, Netzwerk-Isolation |
# Scan with a specific bundle
pathfinder scan --ruleset python/django --project .
# Scan with multiple bundles
pathfinder scan --ruleset python/flask --ruleset python/jwt --project .
# Scan a single rule
pathfinder scan --ruleset python/PYTHON-DJANGO-SEC-001 --project .
# Scan all rules for a language
pathfinder scan --ruleset python/all --project .Durchsuchen Sie alle Regeln mit Beispielen und Testfällen im Regelverzeichnis.
MCP-Server für KI-Codierungsassistenten
Code Pathfinder läuft als MCP-Server und gibt Claude Code, Cursor, Cline und anderen KI-Assistenten Zugriff auf Aufrufgraphen, Datenflüsse und Sicherheitsanalysen. Mehr Kontext als LSP, fokussiert auf Sicherheit und Codestruktur.
pathfinder serve --project .Der MCP-Server stellt Werkzeuge zur Abfrage des Codegraphen bereit: Aufrufer/Calldaten finden, Datenflüsse verfolgen, nach Mustern suchen und Sicherheitsregeln ausführen – alles dem KI-Assistenten während der Codeüberprüfung oder Entwicklung verfügbar.
Eigene Regeln schreiben
Sicherheitsregeln sind Python-Skripte, die das PathFinder SDK verwenden. Definieren Sie Quellen, Senken und Bereiniger – die Datenfluss-Engine übernimmt die Analyse.
Hier ist eine echte Regel aus dem Repository (PYTHON-DJANGO-SEC-001), die SQL-Injection in Django erkennt:
from codepathfinder import calls, flows, QueryType
from codepathfinder.presets import PropagationPresets
class DBCursor(QueryType):
fqns = ["sqlite3.Cursor", "psycopg2.extensions.cursor"]
match_subclasses = True
@python_rule(
id="PYTHON-DJANGO-SEC-001",
name="Django SQL Injection via cursor.execute()",
severity="CRITICAL",
cwe="CWE-89",
)
def detect_django_cursor_sqli():
return flows(
from_sources=[
calls("request.GET.get"),
calls("request.POST.get"),
],
to_sinks=[
DBCursor.method("execute").tracks(0),
calls("cursor.execute"),
],
sanitized_by=[calls("escape"), calls("escape_string")],
propagates_through=PropagationPresets.standard(),
scope="global", # cross-file taint analysis
)# Run your custom rules
pathfinder scan --rules ./my_rules/ --project .Erkunden Sie alle 190 Regeln im Verzeichnis rules/ oder durchsuchen Sie das Regelverzeichnis. Lesen Sie den Leitfaden zum Schreiben von Regeln und die Datenflussdokumentation, um eigene Regeln zu schreiben.
Siehe den Leitfaden zum Schreiben von Regeln und die Datenflussdokumentation für weitere Informationen.
Installation
Homebrew (Empfohlen)
brew install shivasurya/tap/pathfinderpip
Installiert die CLI-Binärdatei und das Python SDK zum Schreiben von Regeln.
pip install codepathfinderDocker
docker pull shivasurya/code-pathfinder:stable-latest
docker run --rm -v "$(pwd):/src" \
shivasurya/code-pathfinder:stable-latest \
scan --ruleset python/all --project /srcVorgefertigte Binärdateien
Laden Sie von GitHub Releases für Linux (amd64, arm64), macOS (Intel, Apple Silicon) und Windows (x64) herunter.
Aus dem Quellcode
git clone https://github.com/shivasurya/code-pathfinder
cd code-pathfinder/sast-engine
gradle buildGo
./build/go/pathfinder --helpVerwendung
# Scan with text output (default)
pathfinder scan --ruleset python/all --project .
# JSON output
pathfinder scan --ruleset python/all --project . --output json --output-file results.json
# SARIF output (GitHub Code Scanning)
pathfinder scan --ruleset python/all --project . --output sarif --output-file results.sarif
# CSV output
pathfinder scan --ruleset python/all --project . --output csv --output-file results.csv
# Fail CI on critical/high findings
pathfinder scan --ruleset python/all --project . --fail-on=critical,high
# MCP server mode
pathfinder serve --project .
# Verbose output with statistics
pathfinder scan --ruleset python/all --project . --verboseGitHub-Aktion
name: Code Pathfinder Security SAST Scan
on:
pull_request:
permissions:
security-events: write
contents: read
pull-requests: write
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run Security Scan
uses: shivasurya/code-pathfinder@v2.1.1
with:
ruleset: python/all, docker/all, docker-compose/all
verbose: true
pr-comment: ${{ github.event_name == 'pull_request' }}
pr-inline: ${{ github.event_name == 'pull_request' }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v4
if: always()
with:
sarif_file: pathfinder-results.sarifSiehe das vollständige Beispiel: .github/workflows/code-pathfinder-scan.yml
Eingabe | Beschreibung | Standard |
| Pfad zu lokalen Python-Regeldateien oder -verzeichnis | - |
| Entfernte Regelsätze, durch Komma getrennt (z. B. | - |
| Pfad zum Quellcode |
|
| Ausgabeformat: |
|
| Ausgabedateipfad |
|
| Fehlschlagen bei Schweregraden (z. B. | - |
| Ausführliche Ausgabe aktivieren |
|
| Debug-Diagnose mit Zeitstempeln aktivieren |
|
| Testdateien überspringen |
|
| Zwischengespeicherte Regelsätze zwangsweise aktualisieren |
|
| Anonyme Nutzungsmetriken deaktivieren |
|
| Zu verwendende Python-Version |
|
| Zusammenfassungskommentar auf Pull-Request veröffentlichen |
|
| Inline-Review-Kommentare für kritische/hohe Funde veröffentlichen |
|
| GitHub-Token (erforderlich, wenn | - |
| Diff-bewusstes Scannen deaktivieren (alle Dateien scannen) |
|
Entweder rules oder ruleset ist erforderlich.
Unterstützte Sprachen
Sprache | Analyse | Status |
Python | Dateiübergreifender Datenfluss, Taint-Analyse, Aufrufgraphen | Stabil |
Dockerfile | Anweisungsanalyse, Sicherheitsmuster | Stabil |
Docker Compose | Konfigurationsanalyse, Sicherheitsmuster | Stabil |
Go | AST-Analyse, Aufrufgraphen | Bald verfügbar |
Mitwirken
Beiträge sind willkommen. Lesen Sie den Leitfaden zum Mitwirken für Einrichtungsanweisungen, wie Sie Tests lokal ausführen und den PR-Prozess.
Eine produktinterne Ankündigung veröffentlichen
Produktinterne Ankündigungen (Workshops, Blogbeiträge, Sicherheitshinweise) werden
über release/latest.json verwaltet. Fügen Sie einen Eintrag zu announcements[] hinzu,
eröffnen Sie einen PR, und sobald er in main gemergt wird, lädt der Veröffentlichungs-Workflow das
Manifest innerhalb von etwa 60 Sekunden auf das CDN hoch. Siehe die technische Spezifikation zur Versionsprüfung für das Schema und die version_range-Semantik.
Alle Mitwirkenden müssen die Contributor License Agreement (CLA) unterzeichnen, bevor ein Pull-Request gemergt werden kann.
Lizenz
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
Alicense-qualityAmaintenanceMCP server that gives AI assistants impact analysis, cross-project reference tracking, and code health scoring.4Apache 2.0- Flicense-qualityCmaintenanceMCP server for AI-powered code security, quality, and performance review. Enables auditing code directly from VS Code via right-click or MCP tools.
- Flicense-qualityCmaintenanceMCP server for AI coding agents that builds a complete code structure graph and semantic vector index, enabling fast querying of code entities, relationships, and impact analysis.788
- Alicense-qualityAmaintenanceA production-ready MCP server that enables AI assistants to intelligently understand, analyze, edit, navigate, and review software projects with multi-workspace support, Git integration, and semantic search.MIT
Related MCP Connectors
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shivasurya/code-pathfinder'
If you have feedback or need assistance with the MCP directory API, please join our Discord server