Files
claude_settings/plans/glittery-enchanting-allen.md
root 4277b10f55 Kanbanize Kartenerstellung dokumentiert: Arrival-Rule-Workaround, Board-Struktur
- Neuer Abschnitt "Karten erstellen (Aufgaben-Workflow)" mit Workflow A/B
- Bekannte Struktur erweitert: Workflows, Columns, Lanes für Board 1
- Pitfalls ergänzt: Arrival Rule, Parent-Link API, linkedCards read-only
- Settings und Plans aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:09:09 +01:00

8.4 KiB

n8n Security Update: 1.123.5 → 2.3.4

Executive Summary

Kritikalität: Hoch - CVE-2025-68668 (CVSS 9.9) ist nur in 2.0.0+ gefixt Downtime: ~5-10 Minuten (PostgreSQL Auto-Migration + Container Rebuild) Risiko: Niedrig - keine Breaking Changes in Workflows gefunden Ziel-Version: 2.3.4 (aktuelle Stable, nicht 2.0.0 wegen Bug-Fixes)


Sicherheitsrisiko-Bewertung

Status der 4 CVEs in aktueller Version 1.123.5

CVE CVSS Status in 1.123.5 Risiko
CVE-2026-21858 "Ni8mare" 10.0 GEFIXT (1.121.0) Unauthenticated RCE über Webhooks
CVE-2026-21877 10.0 GEFIXT (1.121.3) Authenticated RCE via Git Node
CVE-2025-68613 10.0 GEFIXT (1.122.0) Authenticated Expression Injection
CVE-2025-68668 9.9 NICHT GEFIXT Python Sandbox Bypass → RCE

Fazit: CVE-2025-68668 erfordert zwingend Update auf 2.0.0+


Breaking Changes Analyse

Keine kritischen Breaking Changes

  • Start Nodes: Nicht verwendet (alle Workflows nutzen manualTrigger/cron/emailReadImap)
  • Code Nodes: Kein process.env Zugriff (N8N_BLOCK_ENV_ACCESS_IN_NODE=true ist ab 2.0 default)
  • Python Code Nodes: Nicht verwendet (nur JavaScript Code Nodes)
  • Binary Data Mode: Keine deprecated Configs

⚠️ Funktionstest erforderlich

3 Workflows mit LangChain/OpenAI Integration:

  • gebuehrenfrei_live.json
  • instabank_current.json
  • tfbank_current.json

Verwendung: AI-gestützte Extraktion von Zahlungsinformationen (Fälligkeitsdatum, IBAN, BIC, Betrag)

Nodes:

  • @n8n/n8n-nodes-langchain.agent (v1.1)
  • @n8n/n8n-nodes-langchain.lmChatOpenAi (v1)
  • @n8n/n8n-nodes-langchain.memoryBufferWindow (v1)

Aktion: Nach Update AI-Extraktion manuell testen


Update-Plan

Phase 1: Pre-Update Backup

Kritisch: PostgreSQL-Datenbank enthält alle Workflows, Credentials, Execution History

# 1. Auf srvdocker02 per SSH
ssh root@10.0.0.48

# 2. PostgreSQL Backup erstellen
cd /home/icke/n8n
docker exec postgres-n8n pg_dump -U n8n n8n > "backup-$(date +%Y%m%d-%H%M%S).sql"

# 3. Backup komprimieren und sichern
gzip backup-*.sql
ls -lh backup-*.sql.gz

# 4. Optional: Volume-Backup (enthält auch n8n-Files)
tar -czf "n8n-volumes-$(date +%Y%m%d-%H%M%S).tar.gz" /home/icke/n8n_pg/

Backup-Dateien auf Laptop kopieren (Sicherheitskopie):

# Von Laptop aus
scp root@10.0.0.48:/home/icke/n8n/backup-*.sql.gz ~/Nextcloud/egonetix/n8n/backups/

Phase 2: Update durchführen

Datei: /home/rwiegand/Nextcloud/egonetix/n8n/Dockerfile.n8n-curl

Änderung:

# Alt:
FROM n8nio/n8n:1.123.5

# Neu:
FROM n8nio/n8n:2.3.4

Rebuild + Restart:

# Auf srvdocker02
cd /home/icke/n8n

# Container stoppen
docker compose down

# Rebuild mit neuer Version (dauert ~2-3 Minuten)
docker compose up -d --build

# Logs überwachen (PostgreSQL Auto-Migration)
docker compose logs -f n8n-new

Erwartete Log-Ausgaben:

  • Running migrations... (PostgreSQL Schema-Migration)
  • Migration XYZ successful
  • n8n ready on 0.0.0.0:5678

Abbruchkriterium: Wenn Fehler in Logs → sofort docker compose down und Rollback


Phase 3: Verifikation

3.1 Web-UI Zugriff prüfen

# Von Laptop
curl -I https://flow.egonetix.de/
# Erwartung: HTTP 200 oder 302 (Redirect zu Login)

Browser-Test:

3.2 Workflows prüfen

In Web-UI:

  1. Workflows-Liste öffnen
  2. Status der aktiven Workflows prüfen:
    • gebuehrenfrei_live → aktiv?
    • instabank_current → aktiv?
    • tfbank_current → aktiv?

3.3 LangChain/OpenAI Integration testen

Pro Workflow (gebuehrenfrei_live, instabank_current, tfbank_current):

  1. Workflow öffnen in Editor
  2. "Execute Workflow" klicken (manueller Trigger)
  3. Input: Test-E-Mail mit Kreditkarten-Rechnung
  4. Erwartete Ausgabe:
    • AI Agent extrahiert: Fälligkeitsdatum, IBAN, BIC, Betrag
    • Nextcloud Deck Karte wird erstellt (/home/node/create_card_from_ai.sh)
  5. Logs prüfen:
    docker compose logs n8n-new | grep -i "openai\|langchain\|error"
    

Falls AI-Extraktion fehlschlägt:

  • Workflow-Logs in Web-UI prüfen
  • OpenAI API-Key noch gültig? (in Workflow Credentials)
  • Rate Limits überschritten?

3.4 IMAP-Trigger testen

Workflows mit Email-Trigger:

  • Warten auf nächste eingehende Kreditkarten-E-Mail
  • Oder: Manuell Test-E-Mail an IMAP-Account senden
  • Prüfen ob Workflow automatisch triggert

3.5 Version bestätigen

# In Container
docker exec n8n-new n8n --version
# Erwartung: 2.3.4

In Web-UI:

  • Settings → About → Version sollte "2.3.4" zeigen

Phase 4: Rollback (falls nötig)

Nur wenn kritische Fehler auftreten:

# 1. Container stoppen
cd /home/icke/n8n
docker compose down

# 2. Dockerfile zurücksetzen
# In /home/rwiegand/Nextcloud/egonetix/n8n/Dockerfile.n8n-curl:
FROM n8nio/n8n:1.123.5

# 3. Rebuild mit alter Version
docker compose up -d --build

# 4. Falls DB korrupt: Backup einspielen
docker exec -i postgres-n8n psql -U n8n n8n < backup-TIMESTAMP.sql

Wichtig: Rollback nur bis max. 1 Stunde nach Update - danach könnten neue Workflows/Executions verloren gehen!


Post-Update Maßnahmen

Dokumentation aktualisieren

Datei: /home/rwiegand/Nextcloud/egonetix/n8n/README.md

Abschnitt "Upgrade n8n" aktualisieren:

### Upgrade n8n
Edit `Dockerfile.n8n-curl` and change version:
```dockerfile
FROM n8nio/n8n:2.3.4  # Change version here (aktuell: 2.3.4, Stand: 2026-02-04)

Then rebuild:

docker compose up -d --build

Hinweis: Breaking Changes zwischen 1.x und 2.x beachten:

  • Start Nodes entfernt (verwende manualTrigger stattdessen)
  • Python Sandbox sicherer (CVE-2025-68668 gefixt)
  • PostgreSQL Schema-Migration läuft automatisch (Backup vorher!)

### Infrastructure-Dokumentation

**Datei:** `~/Nextcloud/egonetix/infrastructure/hosts/srvdocker02.md`

**Neuer Abschnitt unter "Docker Containers":**
```markdown
## Wichtige Updates

### n8n Security Update (2026-02-04)
- **Version:** 1.123.5 → 2.3.4
- **Grund:** CVE-2025-68668 (Python Sandbox RCE, CVSS 9.9)
- **Downtime:** ~8 Minuten
- **Migration:** PostgreSQL Schema automatisch migriert
- **Tests:** LangChain/OpenAI Integration erfolgreich getestet
- **Commit:** [commit-hash]

Git Commit

cd ~/Nextcloud/egonetix/n8n
git add Dockerfile.n8n-curl README.md
git commit -m "Security Update: n8n 1.123.5 → 2.3.4 (CVE-2025-68668)

- Update Dockerfile.n8n-curl auf n8n:2.3.4
- Behebt CVE-2025-68668 (Python Sandbox Bypass, CVSS 9.9)
- PostgreSQL Schema-Migration erfolgreich
- LangChain/OpenAI Workflows getestet und funktional
- Breaking Changes: keine in unserer Konfiguration

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>"
git push origin main

Kritische Dateien

Datei Änderung
Dockerfile.n8n-curl Zeile 1: FROM n8nio/n8n:1.123.5FROM n8nio/n8n:2.3.4
README.md Abschnitt "Upgrade n8n" erweitern mit Breaking Changes Hinweis

Keine Änderungen nötig:

  • docker-compose.yml (Environment-Variablen bleiben unverändert)
  • scripts/*.sh (Custom Scripts kompatibel)
  • Workflow-Files (keine Start Nodes, kein process.env)

Verification Checklist

Nach Abschluss des Updates:

  • PostgreSQL Backup erstellt und gesichert
  • docker compose logs zeigt keine Errors
  • Web-UI unter https://flow.egonetix.de/ erreichbar
  • Login funktioniert
  • Workflows-Liste zeigt alle Workflows
  • 3 LangChain Workflows manuell getestet:
    • gebuehrenfrei_live - AI-Extraktion funktioniert
    • instabank_current - AI-Extraktion funktioniert
    • tfbank_current - AI-Extraktion funktioniert
  • IMAP-Trigger aktiv (bei nächster E-Mail testen)
  • n8n --version zeigt 2.3.4
  • README.md aktualisiert
  • infrastructure/hosts/srvdocker02.md aktualisiert
  • Git Commit erstellt und gepusht
  • Backup-Files können gelöscht werden (nach 1 Woche Betrieb)

Geschätzte Zeiten

Phase Dauer
Backup 2-3 Minuten
Update (Dockerfile Edit + Rebuild) 3-5 Minuten
Verifikation (Web-UI + Workflows) 5-10 Minuten
Dokumentation 3-5 Minuten
Gesamt 15-25 Minuten

Downtime: Nur während Container-Restart (~5 Minuten)