{"id":"CVE-2026-71268","published":"2026-08-05T13:24:51.083","lastModified":"2026-08-10T12:17:29.267","description":"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.","cvssScore":9.9,"cvssSeverity":"CRITICAL","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","cwes":["CWE-22"],"vendors":[],"products":[],"references":[{"url":"https://github.com/thiagoralves/OpenPLC_v3","tags":[]},{"url":"https://github.com/thiagoralves/OpenPLC_v3/blob/master/webserver/openplc.py","tags":[]}],"exploitRefs":[{"url":"https://github.com/thiagoralves/OpenPLC_v3","tags":[]},{"url":"https://github.com/thiagoralves/OpenPLC_v3/blob/master/webserver/openplc.py","tags":[]}],"hasPoc":true,"ai":{"summary":"The flaw allows an attacker to execute arbitrary code by manipulating file paths in Structured Text (.st) program files, due to lack of proper validation.","exploitability":"Exploitation is relatively easy as the necessary conditions are met with just file path manipulation, requiring no additional privileges.","blast_radius":"If exploited, the impact could be severe, potentially leading to full system compromise or data corruption.","remediation":"Disable the compile_program function or ensure it invokes the validate_file_path function from credentials.py.","detection":"No reliable host or network indicator is derivable from the published description.","tags":["rce","code-exec","web","file-inclusion"],"model":"qwen2.5:7b-instruct","analyzedAt":"2026-09-27T08:58:47.981Z"}}