real-debrid-downloader/src
Sucukdeluxe 95d284f687 Sicherheit: Allowlist anhand des echten Socket-Peers statt X-Forwarded-For
Die Allowlist-Pruefung nutzte extractDebugClientIp, das X-Forwarded-For zuerst
auswertet - ein angreiferkontrollierter Header. Damit konnte ein entfernter Client
auf einem 0.0.0.0-Bind die Allowlist komplett umgehen (X-Forwarded-For: 127.0.0.1 ->
als Loopback gewertet). Die Allowlist bot so keinerlei Schutz; nur das Token blieb.

Fix: Enforcement liest jetzt ausschliesslich req.socket.remoteAddress (getPeerIp),
das vom Kernel aus der TCP-Verbindung gesetzt wird und nicht per Header faelschbar ist.
X-Forwarded-For wird nur noch fuer das Trace-Log (Beobachtbarkeit) verwendet, nie fuer
die Zugriffsentscheidung. Reine, exportierte Matcher-Funktion evaluateClientAllowed.

Tests umgebaut auf den Threat-Model statt den faelschbaren Kanal: Unit-Tests fuer
Loopback/exakt/CIDR/fail-closed + expliziter Forged-XFF-Test (socket.remoteAddress
8.8.8.8 + X-Forwarded-For 127.0.0.1 -> verweigert). Integration: Loopback verbindet,
gespooftes X-Forwarded-For wird ignoriert, Auth bleibt erzwungen, Live-Reload.
2026-06-19 17:10:11 +02:00
..
main Sicherheit: Allowlist anhand des echten Socket-Peers statt X-Forwarded-For 2026-06-19 17:10:11 +02:00
preload Ferndiagnose (MCP): Verbindungscode + abgesicherter Fernzugriff + stdio-Bridge 2026-06-19 17:05:28 +02:00
renderer Ferndiagnose (MCP): Verbindungscode + abgesicherter Fernzugriff + stdio-Bridge 2026-06-19 17:05:28 +02:00
shared Ferndiagnose (MCP): Verbindungscode + abgesicherter Fernzugriff + stdio-Bridge 2026-06-19 17:05:28 +02:00