CVE-2026-22208: OpenS100 Portrayal Engine Unrestricted Lua Standard Library Access
OpenS100 (the reference implementation S-100 viewer) prior to commit 753cf29 contains a remote code execution vulnerability via an unrestricted Lua interpreter. The Portrayal Engine initializes Lua using luaL_openlibs() without sandboxing or capability restrictions, exposing standard libraries such as 'os' and 'io' to untrusted portrayal catalogues. An attacker can provide a malicious S-100 portrayal catalogue containing Lua scripts that execute arbitrary commands with the privileges of the OpenS100 process when a user imports the catalogue and loads a chart.
Security readout for executives and security teams
Plain-English summary
CVE-2026-22208 lets a malicious S-100 portrayal catalogue run code through OpenS100 when a user imports the catalogue and loads a chart. The business risk is workstation or operational system compromise in environments that handle electronic navigational chart data, especially if users accept catalogues from untrusted sources.
Executive priority
Prioritize remediation where OpenS100 is used on workstations or systems handling external chart catalogues. The CVSS score is critical, but practical risk depends on catalogue import practices and whether vulnerable builds are deployed.
Technical view
OpenS100 before commit 753cf294434e8d3961f20a567c4d99151e3b530d initializes Lua with luaL_openlibs() without sandboxing. This exposes Lua standard libraries including os and io to untrusted portrayal catalogue scripts, enabling arbitrary command execution under the OpenS100 process context.
Likely exposure
Exposure appears limited to OpenS100 deployments or derivative builds using vulnerable code before the patch commit. The source bundle does not provide packaged release numbers or evidence that other S-100 viewers are affected.
Exploitation context
Exploitation requires user interaction: importing a malicious portrayal catalogue and loading a chart. The CVE is not listed as KEV in the provided bundle, so there is no source-backed claim of active exploitation.
Researcher notes
Key evidence is the unrestricted Lua interpreter behavior and patch reference. Version mapping is incomplete in the bundle, so assess by commit or source inspection rather than package names alone. Avoid assuming broader S-100 ecosystem exposure without product-specific evidence.
Mitigation direction
Update OpenS100 to commit 753cf294434e8d3961f20a567c4d99151e3b530d or later.
Block use of untrusted S-100 portrayal catalogues until patched.
Run OpenS100 with least-privilege user permissions where operationally possible.
Check OpenS100 project guidance for any packaged release or additional hardening advice.
Treat previously imported untrusted catalogues as potentially unsafe.
Validation and detection
Inventory systems using OpenS100 or embedded OpenS100 viewer builds.
Confirm deployed source includes commit 753cf294434e8d3961f20a567c4d99151e3b530d or later.
Review whether users can import third-party S-100 portrayal catalogues.
Check endpoint telemetry for unexpected child processes from OpenS100.
Document any untrusted catalogue sources used before remediation.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-749: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
1ADP providers
4Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-749 · source CWE mapping
Exposed Dangerous Method or Function
Exposed Dangerous Method or Function represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Inclusion of Functionality from Untrusted Control Sphere
Inclusion of Functionality from Untrusted Control Sphere represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.