Bezpieczeństwo utrzymywane jest wyłącznie na najnowszej gałęzi main oraz najnowszym wydaniu z tagu SemVer.
| Wersja | Wsparcie |
|---|---|
| 0.1.x | ✅ |
| < 0.1 | ❌ |
Znalazłeś podatność? Dzięki. Zgłoś ją odpowiedzialnie.
Nie otwieraj publicznego issue dla podatności. Zamiast tego:
- Napisz e-mail na
grzybowski.it+security@gmail.comz prefixem[SECURITY] WISMO Agent. - W treści opisz podatność, warunki reprodukcji, wpływ i propozycję fixu jeśli masz.
- Otrzymasz potwierdzenie w ciągu 48 godzin.
- Fix zostanie przygotowany w prywatnej gałęzi, wydany jako patch release.
- Publiczny disclosure po wydaniu fixu, z uznaniem dla znalazcy jeśli sobie tego życzy.
| Severity | Potwierdzenie | Fix wydany |
|---|---|---|
| Critical (RCE, auth bypass, PII leak) | 48h | 7 dni |
| High (privilege escalation, DoS) | 5 dni | 30 dni |
| Medium (XSS, CSRF) | 14 dni | 90 dni |
| Low | 30 dni | best effort |
W scope tego repo są:
- Kod w
src/api/(mikroserwis FastAPI). - Konfiguracja
docker/(compose, Nginx, init db). - Workflowy n8n w
n8n-workflows/(walidacja Function Node, brak injection). - Skille w
skills/.
Poza scope (zgłaszaj do właściciela projektu):
- Podatności w n8n samym w sobie (n8n.io).
- Podatności w Anthropic Claude API.
- Podatności w Docker, PostgreSQL, Redis, Nginx (upstream).
Główne wektory ataku które mieliśmy na uwadze:
- Prompt injection. Klient próbuje zmanipulować agenta ("zignoruj poprzednie instrukcje..."). Mitygacja: guardrails po stronie serwera walidują output przed wysyłką, twarde separatory w promptcie, blacklist zwrotów. Zalecenie produkcyjne: dodać LLM Guard lub Rebuff jako klasyfikator wejścia.
- PII leak przez LLM. Klient wysyła numer karty w wiadomości. Mitygacja: PII Redactor przed wywołaniem LLM (
redact_pii()), guardrails walidują też output. - Ujawnienie bazy klientów. Agent po weryfikacji ujawnia że e-mail istnieje. Mitygacja:
verify_identitynigdy nie zwraca zawartości bazy, tylkoverified: boolplusreason_code. - Halucynacje numerów zamówień. Agent zmyśla ID. Mitygacja:
validate_responseweryfikuje że każdy numer w odpowiedzi był w outputach narzędzi. - Nieautoryzowany dostęp do panelu n8n. Mitygacja: Basic Auth plus rate limit plus zalecenie VPN/IP allowlist w produkcji.
- Webhook spoofing. Ktoś podszywa się pod Twilio/Shopify. Mitygacja: TODO, dodać weryfikację HMAC dla Shopify i X-Twilio-Signature.
- Wyczerpanie budżetu LLM. Bot spamuje agenta. Mitygacja: rate limit per IP w Nginx, TODO per session w Redis, TODO twarde limity kosztowe per klient.
Pełny threat model: docs/SECURITY_THREAT_MODEL.md (todo).
- Wszystkie sekrety w
.env, nigdy w kodzie ani w commitach. gitleaksw CI blokuje commit z detected secretami.- Dependabot włączony na
.github/dependabot.yml. - Trivy skanuje obrazy Docker w CI.
banditskanuje Python pod SAST.- Non root user w kontenerach.
- Rate limiting per IP i per session (planowane).
- Immutable audit log (planowane, S3 Object Lock).
E-mail: grzybowski.it+security@gmail.com
Author: Hubert Grzybowski
Response time: 48h potwierdzenie, patch zależny od severity.