bugs.md #8: REST-Pendant zur CLI-Injection — ungeschützte Query-String-Interpolation #20

Closed
opened 2026-09-17 21:10:04 +02:00 by kay · 0 comments
Owner

Quelle: bugs.md #8 (Sicherheits-Durchgang Runde 3, 2026-09-17)
Confidence: hoch (dieselbe Bugklasse wie bugs.md #5, nur im REST- statt SSH-Pfad)

RestTransport.fetchFieldValues baute den Query-String "\(restPath)?\(whereField)=\(whereValue)" ohne jede Kodierung — beim SSH-Gegenstück in #5 bereits gefixt, REST-Pendant übersehen. Ein whereValue mit & hätte einen zusätzlichen Query-Parameter einschleusen können. Aktuell nur mit hartkodiertem "no" aufgerufen (kein Live-Exploit möglich), aber generische RouterOSTransport-Methode.

Fix: whereValue wird jetzt RFC-3986-"unreserved characters"-only percent-encoded.

Verifikation: Build grün, 101 Unit-Tests grün. Defensiver Fix, nicht live exploitierbar im aktuellen Zustand.

**Quelle:** bugs.md #8 (Sicherheits-Durchgang Runde 3, 2026-09-17) **Confidence:** hoch (dieselbe Bugklasse wie bugs.md #5, nur im REST- statt SSH-Pfad) `RestTransport.fetchFieldValues` baute den Query-String `"\(restPath)?\(whereField)=\(whereValue)"` ohne jede Kodierung — beim SSH-Gegenstück in #5 bereits gefixt, REST-Pendant übersehen. Ein `whereValue` mit `&` hätte einen zusätzlichen Query-Parameter einschleusen können. Aktuell nur mit hartkodiertem `"no"` aufgerufen (kein Live-Exploit möglich), aber generische `RouterOSTransport`-Methode. **Fix:** `whereValue` wird jetzt RFC-3986-"unreserved characters"-only percent-encoded. **Verifikation:** Build grün, 101 Unit-Tests grün. Defensiver Fix, nicht live exploitierbar im aktuellen Zustand.
kay closed this issue 2026-09-17 21:10:05 +02:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kay/RouterOS#20