CVE-2026-71268
KrytyczneCVSS 9.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 47 - wyżej niż 47% wszystkich znanych CVE
Streszczenie
OpenPLC Runtime v3 w funkcji compile_program (webserver/openplc.py) parsuje dyrektywy z przesłanych plików Structured Text (.st) i zapisuje odwołaną treść bez walidacji, czy ścieżka pliku pozostaje w katalogu ./core. Funkcja validate_file_path istnieje w kodzie, ale nie jest wywoływana z compile_program.
Ocena ryzyka
Atakujący może przesłać złośliwy plik .st, który spowoduje zapis plików poza dozwolonym katalogiem, co może prowadzić do nadpisania krytycznych plików systemowych lub wykonania kodu.
Rekomendacja
Należy zintegrować walidację ścieżki w compile_program, aby zapewnić, że pliki są zapisywane tylko w dozwolonym katalogu. Zaleca się również aktualizację do najnowszej wersji OpenPLC.
Inne podatności w OpenPLC Runtime
Zobacz wszystkie- CVE-2026-14480Krytyczne
OpenPLC Runtime v3 zawiera uwierzytelnioną podatność na zapis dowolnych plików w starszym interfejsie webowym podczas przesyłania programu. Atakujący może dostarczyć dowolną nazwę pliku, która jest zapisywana w bazie danych i używana jako ścieżka docelowa bez walidacji, co pozwala na zapis plików w dowolnym miejscu zapisywalnym przez proces serwera WWW.
- CVE-2025-34226Wysokie
OpenPLC Runtime v3 zawiera błąd walidacji danych wejściowych w punkcie końcowym /upload-program-action: pole epoch_time dostarczane podczas przesyłania programu nie jest weryfikowane i może zostać spreparowane w celu spowodowania uszkodzenia bazy danych programów. Po nieudanym przesyłaniu runtime działa do momentu restartu; po restarcie runtime może nie wystartować z powodu uszkodzonych wpisów bazy danych, co prowadzi do trwałej odmowy usługi wymagającej całkowitego przywrócenia produktu. Podatność została naprawiona w commicie 095ee09.
Oryginalny opis (angielski, źródło NVD)
OpenPLC Runtime v3's compile_program function (webserver/openplc.py) parses directives from uploaded Structured Text (.st) program files and writes the referenced content to with no validation that file_path stays within the ./core directory. A path-validation function, validate_file_path, exists elsewhere in the codebase (webserver/credentials.py) but is never invoked from compile_program, leaving the sink unprotected.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

