CVE-2026-71268

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.
Configurations

No configuration.

History

23 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) La función compile_program() de OpenPLC Runtime v3 (webserver/openplc.py) analiza las directivas “(FILE:path content)” de los archivos de programa Structured Text (.st) cargados y escribe el contenido referenciado en “os.path.join(’./core’, file_path)” sin validación de que file_path permanezca dentro del directorio ./core. Un archivo .st manipulado que contiene una directiva como “(FILE:.. / .. / .. / etc/cron.d/x * * * * root [command]*)” escribe contenido controlado por el atacante en una ruta arbitraria del sistema de archivos, lo que permite la ejecución remota de código (por ejemplo, a través de cron o de las claves autorizadas de SSH). Una función de validación de rutas, validate_file_path(), existe en otra parte de la base de código (webserver/credentials.py) pero nunca se invoca desde compile_program(), dejando el ’sink’ desprotegido. OpenPLC se distribuye además con credenciales predeterminadas codificadas (openplc:openplc), lo que reduce la barrera práctica para la explotación.

Information

Published : 2026-08-05 13:24

Updated : 2026-10-24 15:10


NVD link : CVE-2026-71268

Mitre link : CVE-2026-71268

CVE.ORG link : CVE-2026-71268


JSON object : View

Products Affected

No product.

CWE
CWE-22

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')