Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
HighCISA KEVExploited in the wildPublic exploit

Arbitrary JSP File Upload and RCE in OpenPLC ScadaBR

IdentifiersCVE-2021-26828CWE-434· Unrestricted Upload of File with…

CVE-2021-26828 is an unrestricted file upload vulnerability in OpenPLC ScadaBR affecting versions through 0.9.1 on Linux and through 1.12.4 on Windows. The issue allows remote authenticated users to upload arbitrary JSP files via the view_edit.shtm functionality. Because the uploaded file can be a server-executable JSP payload, an attacker can then execute that file on the target system. This makes the flaw effectively a server-side arbitrary file upload leading to remote code execution in the context of the application server hosting ScadaBR.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation allows an authenticated remote attacker to upload and execute arbitrary JSP code on the vulnerable ScadaBR server. This can result in remote code execution, compromise of the application and underlying host in the security context of the service, unauthorized access to sensitive operational or application data, modification of system behavior, deployment of additional payloads, and potential lateral movement from the affected SCADA environment.

Mitigation

If you can’t patch tonight, do this now.

Limit access to ScadaBR administrative and authenticated interfaces to trusted management networks only; do not expose the application directly to the public Internet. Enforce strong authentication and least-privilege access for all accounts that can reach view_edit.shtm. Use reverse proxies, WAF rules, or application-layer controls to block JSP or other executable file uploads where possible. Monitor for unexpected JSP files, changes to web application directories, and suspicious requests to uploaded resources. In ICS/SCADA deployments, segment the management interface from business and external networks and continuously review for indicators of compromise.

Remediation

Patch, then assume compromise.

Upgrade OpenPLC ScadaBR to a version that is not affected, if a fixed release is available from the vendor. If an upgrade path is not immediately available, remove or restrict the vulnerable upload capability exposed through view_edit.shtm, and apply vendor-provided patches or compensating controls as soon as possible. Because CISA has added this CVE to the KEV catalog with evidence of active exploitation, remediation should be prioritized.
PUBLIC EXPLOITS

Exploits

3 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 3 / 3 TOTALView more in app
CVE-2021-26828MaturityPoCVerified exploit

This repository contains a single Python script (CVE-2021-26828) that exploits an authenticated remote code execution vulnerability in ScadaBR (CVE-2021-26828). The exploit targets ScadaBR instances running on both Linux and Windows platforms (prior to version 1.1.01). The script requires valid credentials to authenticate to the ScadaBR web interface, uploads a platform-specific JSP web shell, and provides multiple post-exploitation features: reverse shell (Linux), arbitrary command execution (Windows), environment variable dumping, and a kill/cleanup switch to remove the shell. The script supports proxying, webhook notifications, and post-exploitation chaining. The main attack vector is network-based, targeting the HTTP interface of ScadaBR. The endpoints involved are the user-supplied ScadaBR URL and the path to the uploaded web shell. The payloads are JSP web shells embedded in the script. The repository is operational and provides a functional exploit with post-exploitation capabilities.

Yuri08loveElainaDisclosed Jun 14, 2025pythonjspnetwork
CVE-2021-26828-UltimateMaturityPoCVerified exploit

This repository contains 'ScadaFlare', an advanced exploit toolkit targeting CVE-2021-26828 in ScadaBR versions prior to 1.1.0. The main file, 'scadaflare.py', is a Python 3 script that automates authenticated remote code execution by uploading a weaponized JSP web shell via the 'view_edit.shtm' endpoint. The exploit supports both Linux and Windows targets, with payloads tailored for each OS. Features include reverse shell triggering (with configurable IP/port), command execution (Windows), environment variable dumping, webhook-based exfiltration (Slack/Discord), proxy support, and cleanup (shell removal). The toolkit is modular, supporting post-exploitation enumeration and integration into red team workflows. The README provides detailed usage instructions and highlights enhancements over the original PoC. The only code file is 'scadaflare.py'; the other files are documentation and license. The exploit requires valid credentials and network access to the ScadaBR web interface. No hardcoded IPs or domains are present, but the main fingerprintable endpoint is the 'view_edit.shtm' upload handler.

ridpathDisclosed May 30, 2025pythonnetwork
CVE-2021-26828_ScadaBR_RCEMaturityPoCVerified exploit

This repository contains two Python exploit scripts (LinScada_RCE.py for Linux targets and WinScada_RCE.py for Windows targets) and a README file. Both scripts exploit CVE-2021-26828, an authenticated arbitrary file upload vulnerability in ScadaBR (versions 1.0, 1.1CE, and 1.12.4CE). The exploit works by authenticating to the ScadaBR web interface, uploading a malicious JSP webshell via the vulnerable 'view_edit.shtm' endpoint, and then accessing the uploaded shell in the 'uploads' directory. The Linux version uploads a JSP that provides a reverse shell to the attacker's machine, while the Windows version uploads a JSP that allows arbitrary command execution via HTTP requests. The README provides usage instructions and references. The main attack vector is network-based, requiring valid credentials to the ScadaBR web interface. The endpoints involved are the login page, the file upload page, and the uploads directory where the webshell is placed.

hev0xDisclosed Mar 31, 2021pythonnetwork
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
OpenplcprojectScadabrapplication
ScadabrScadabrapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures2

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity10

Community discussion across Reddit, Mastodon, and other social sources.