CVE-2026-71278
KrytyczneCVSS 9.8Streszczenie
Podatność w rust-iot-platform umożliwia tworzenie "reguły kalkulacyjnej" przez POST /calc-rule/create z dowolnym polem `script`. Ta trasa nie korzysta z zabezpieczenia AuthToken używanego w innych miejscach aplikacji, więc jest dostępna bez uwierzytelnienia. Przechowywany skrypt jest następnie wykonywany przez quick_js::Context::eval() bez sandboxingu, co pozwala nieuwierzytelnionemu atakującemu na wykonanie dowolnego kodu JavaScript w procesie serwera poprzez utworzenie i wyzwolenie złośliwej reguły.
Ocena ryzyka
Ryzyko zdalnego wykonania kodu w procesie serwera bez uwierzytelnienia, co może prowadzić do pełnej kompromitacji platformy IoT i związanych z nią danych.
Rekomendacja
Zaleca się dodanie zabezpieczenia AuthToken do trasy /calc-rule/create oraz zastosowanie sandboxingu dla wykonywania skryptów JavaScript. Należy również przejrzeć i ograniczyć dostęp do tej funkcji.
Oryginalny opis (angielski, źródło NVD)
rust-iot-platform allows creating a "calc rule" via POST /calc-rule/create (api/src/controller/calc_rule_router.rs) containing an arbitrary `script` field. This route does not take the AuthToken request guard used elsewhere in the application, making it reachable without authentication. The stored script is subsequently executed via quick_js::Context::eval() in api/src/biz/calc_run_biz.rs with no sandboxing, allowing an unauthenticated attacker to achieve arbitrary JavaScript execution in the server process by creating and triggering a malicious calc rule.

