Sicherheit & Architektur • August 2026

Sprint 334: Härtung von Swarm-Quorums, Zustands-Persistenz und Ressourcen-Quoten in v2.21.4-security 🔒

Im Sprint 334 (Offizieller Release v2.21.4-security) haben wir die Korrekturen des letzten Sicherheits-Audits finalisiert. Dieses Update behebt kritische Schwachstellen bei der Quorum-Berechnung, sichert Peer-Sperrlisten mit crash-resistenter Disk-Persistenz, weitet die Traversierung des Memory-Estimators auf den gesamten Stack aus und führt konfigurierbare Ressourcen-Limits für VM-Isolates ein.

1. Crash-resistente Peer-Sperrung & Registrierungs-Gate (C4)

Bisher wurden gesperrte Peer-Keys ausschließlich im flüchtigen Hauptspeicher vorgehalten. Nach einem Neustart des Knotens war die Sperrliste leer, was eine erneute Registrierung bereits kompromittierter Peers ermöglichte.

Unter der strengen **Robustheits-Regel** speichert KnotenCore gesperrte Keys nun unverzüglich in revoked_keys.json ab. Alle I/O-Dateizugriffe fangen Fehler über sichere Result-Typen ab. Fehlende Schreibrechte, volle Festplatten oder beschädigtes JSON führen zu Log-Warnungen, erzeugen jedoch niemals einen Server-Crash.

Zusätzlich blockiert ein neues Registrierungs-Gate in knc_mesh_peers?action=register revozierte Peers direkt vor der Aufnahme in die Routing-Table mit der Fehlermeldung -32001 Unauthorized.

2. Swarm-Quorum Härtung (C3)

Prüfpunkt C3 des Audits identifizierte einen Logikfehler im Nenner der Quorum-Berechnungen in knc_swarm_quorum und knc_mesh_revoke_peer. Hierbei wurden fälschlicherweise auch Offline-Peers mit dem Status Evicted oder Stale gezählt, was den Konsens-Schwellwert künstlich verwässerte.

Durch strikte Filterung der Peer-Map werden ab v2.21.4-security nur noch verifizierte, aktive Knoten einbezogen. Der Schwellwert berechnet sich nun korrekt nach der Formel: (aktive_knoten / 2) + 1.

3. Lückenlose Stack-Traversierung im Memory-Estimator (A4)

Zur Vermeidung von Memory-Exhaustion begrenzen Isolates Heap-Zuweisungen auf 16 MiB. Der Schätzer brach die Prüfung des VM-Stacks bisher jedoch nach 64 Elementen ab (.take(64)), wodurch tiefe Aufrufe unbemerkt blieben.

Dieses Limit wurde entfernt. Der Schätzer akkumuliert nun die exakten Heap-Größen des gesamten Stacks, wodurch Denial-of-Service-Angriffe durch überdimensionierte tiefe Datenstrukturen unmöglich gemacht werden.

4. Anpassbare Ressourcen-Quoten für VMIsolates (A5)

Der Betrieb verteilter, mandantenfähiger Agenten-Systeme erfordert feingranulare Ressourcen-Zuweisung. Wir haben VMIsolate um ein konfigurierbares quota-Feld erweitert. Hoster können Isolates nun mit individuellen Opcodes- und Speicher-Limits starten:

let quota = IsolateQuota {
    max_opcodes: 50_000,
    max_memory_bytes: 1024 * 1024, // 1 MiB
};
let isolate = VMIsolate::new(instructions, constants).with_quota(quota);

5. Verifikation via Quality Gates

Die Wirksamkeit aller Härtungsmaßnahmen wird durch eine neu geschriebene Test-Suite (tests/security_audit_sprint334_tests.rs) untermauert. Sämtliche Härtungstests sowie alle 300+ Bestandstests laufen fehlerfrei durch und garantieren Stabilität auf Enterprise-Niveau.