CVE-2026-56291

Balbooa Forms Unrestricted File Upload Exploitation (CVE-2026-56291)

Initial Access Execution Last updated:

Detects exploitation attempts against CVE-2026-56291, an unrestricted upload of file with dangerous type vulnerability (CWE-434) in Balbooa Forms for Joomla. This vulnerability is listed in CISA KEV, indicating confirmed active exploitation. Attackers abuse the forms file upload functionality to upload web shells or other malicious executable content (PHP, PHTML, PHAR, etc.) bypassing extension/type restrictions, leading to remote code execution on the underlying web server.

Vulnerability Intelligence

KEV — Known Exploited

What is CVE-2026-56291 Balbooa Forms Unrestricted File Upload Exploitation (CVE-2026-56291)?

Balbooa Forms Unrestricted File Upload Exploitation (CVE-2026-56291) (CVE-2026-56291) maps to the Initial Access and Execution tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for Balbooa Forms Unrestricted File Upload Exploitation (CVE-2026-56291), covering the data sources and telemetry it touches: IIS Logs, Web Application Firewall Logs, Azure WAF. The queries below are rated high severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Execution
Microsoft Sentinel / Defender
kusto
// Microsoft Sentinel - Detect Balbooa Forms webshell upload / RCE attempt (CVE-2026-56291)
let suspiciousExt = dynamic([".php",".phtml",".phar",".php5",".php7",".pht",".jsp",".asp",".aspx"]);
W3CIISLog
| where csUriStem has_any ("/components/com_balbooaforms", "/media/com_balbooaforms", "joomla") and cUriQuery has_any ("upload", "file")
| where csMethod == "POST"
| where cUriStem has_any (suspiciousExt)
| extend UploadedFile = extract(@"([^/\\]+\.(php\d?|phtml|phar|pht|jsp|asp|aspx))", 1, csUriStem)
| project TimeGenerated, cIP, csUriStem, csUserAgent, scStatus, UploadedFile
| union (
    W3CIISLog
    | where cUriStem has "com_balbooaforms" and csMethod == "POST" and scStatus in (200,201,302)
    | project TimeGenerated, cIP, csUriStem, csUserAgent, scStatus, UploadedFile="unknown"
)
| sort by TimeGenerated desc

Detects HTTP POST requests to Balbooa Forms Joomla component upload endpoints containing dangerous file extensions consistent with webshell upload exploitation of CVE-2026-56291.

high severity medium confidence

Data Sources

IIS Logs Web Application Firewall Logs Azure WAF

Required Tables

W3CIISLog

False Positives

  • Legitimate file uploads with similarly named but benign attachments (e.g. .php in a filename used decoratively)
  • Internal QA/testing of the forms component uploading test files
  • Misconfigured logging causing false extension matches from query strings

Sigma rule & cross-platform mapping

The detection logic for Balbooa Forms Unrestricted File Upload Exploitation (CVE-2026-56291) (CVE-2026-56291) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Simulate dangerous file extension upload POST request

    Expected signal: Web server access log entry showing POST request to com_balbooaforms upload endpoint with filename test_shell.php and 200/201 status code.

  2. Test 2Upload double-extension bypass file (.phtml)

    Expected signal: Web access log entry for POST request with mismatched Content-Type (image/jpeg) and .phtml extension in filename.

  3. Test 3Windows IIS-hosted Joomla upload simulation

    Expected signal: W3CIISLog entry recording POST to com_balbooaforms endpoint with cs-uri-stem containing test_shell.aspx.


Response Playbook

Triage

  1. Identify the affected Joomla site(s) running the Balbooa Forms component and confirm the installed version against the vendor's patched release.
  2. Search web server access logs for POST requests to com_balbooaforms upload endpoints with dangerous extensions (.php, .phtml, .phar, .pht, .jsp, .asp, .aspx) over the last 30 days.
  3. Inspect the web root and any Joomla media/uploads directories for recently created or modified files with executable extensions or suspicious naming patterns.
  4. Check for webshell indicators in uploaded files (e.g., eval(), base64_decode(), system() calls) using YARA or manual review.
  5. Review server process lists and cron jobs for anomalous PHP-CLI or shell processes spawned by the web server user (www-data, apache, iis apppool).

Containment

  1. Immediately disable or restrict the Balbooa Forms file upload functionality (remove/rename the component or block the upload endpoint at the WAF/reverse proxy) until patched.
  2. Isolate the affected web server from sensitive internal network segments and rotate any credentials/API keys accessible from that host.
  3. Apply vendor patch/update to Balbooa Forms to a non-vulnerable version, or deploy a WAF rule blocking POSTs with executable file extensions to the component endpoint.
  4. Remove any identified webshells or malicious uploaded files and restore affected files from known-good backups.

Evidence Collection

  1. Preserve full web server access and error logs, including raw HTTP request bodies for the relevant time window, before rotation/purge.
  2. Collect file system timestamps (created/modified/accessed), hashes, and full copies of any suspicious uploaded files for forensic analysis and IOC extraction.
  3. Capture memory and process snapshots of the web server host if active compromise/persistence is suspected.
  4. Export Joomla component configuration and database records related to form submissions for correlation with attacker activity.

Escalation Criteria

  • ! Confirmed webshell or RCE artifact found on an internet-facing production server.
  • ! Evidence of lateral movement, credential harvesting, or data exfiltration originating from the compromised web server.
  • ! Multiple distinct source IPs attempting exploitation, suggesting mass scanning/automated KEV exploitation campaigns.
  • ! Affected system hosts regulated or sensitive data (PII, PCI, PHI) subject to breach notification requirements.

Investigation Guide

Forensic Artifacts

  • > Web server access/error logs showing POST requests to com_balbooaforms upload endpoints
  • > Newly created files with executable extensions in Joomla media/uploads directories with anomalous timestamps
  • > Web shell files containing obfuscated PHP code (eval, base64_decode, system, exec)
  • > Joomla database records in the forms submission tables referencing the malicious upload

Tuning Guidance

Baseline normal file upload patterns for the Balbooa Forms component in your environment (legitimate file types, average upload volume per IP) to reduce false positives from valid CMS usage. Exclude known internal QA/testing IP ranges. Tighten extension matching to only executable/script types rather than broad wildcard matches, and correlate upload events with subsequent HTTP GET requests to the uploaded file path to confirm the webshell was actually invoked (higher-fidelity detection).


Hunting Queries

Hunts for source IPs making repeated successful POST requests to Balbooa Forms endpoints, indicating scanning or repeated exploitation attempts.

Hunting — KQL
kql
W3CIISLog
| where csUriStem has "com_balbooaforms" and csMethod == "POST"
| where scStatus == 200
| summarize count(), makeset(csUriStem) by cIP
| where count_ > 3
| sort by count_ desc
Hunting — SPL
spl
index=web uri_path="*com_balbooaforms*" method=POST status=200
| stats count values(uri_path) as paths by clientip
| where count > 3
| sort -count

Atomic Red Team Tests

Test 1 Simulate dangerous file extension upload POST request
linux

Sends a crafted multipart/form-data POST request to a lab Joomla Balbooa Forms upload endpoint containing a file with a .php extension to validate detection logic.

Command

bash
curl -s -X POST -F "file=@/tmp/test_shell.php;filename=test_shell.php;type=application/x-php" http://lab-target/index.php?option=com_balbooaforms&task=form.upload

Cleanup

bash
rm -f /tmp/test_shell.php; ssh lab-target 'rm -f /var/www/html/media/com_balbooaforms/uploads/test_shell.php'

Expected Telemetry

Web server access log entry showing POST request to com_balbooaforms upload endpoint with filename test_shell.php and 200/201 status code.

Expected Detection

KQL/SPL rule fires on POST request containing .php extension in uploaded filename to Balbooa Forms endpoint.

Test 2 Upload double-extension bypass file (.phtml)
linux

Tests detection against extension bypass techniques by uploading a file with a .phtml extension, commonly used to evade naive .php extension filters.

Command

bash
curl -s -X POST -F "file=@/tmp/test_shell.phtml;filename=test_shell.phtml;type=image/jpeg" http://lab-target/index.php?option=com_balbooaforms&task=form.upload

Cleanup

bash
rm -f /tmp/test_shell.phtml; ssh lab-target 'rm -f /var/www/html/media/com_balbooaforms/uploads/test_shell.phtml'

Expected Telemetry

Web access log entry for POST request with mismatched Content-Type (image/jpeg) and .phtml extension in filename.

Expected Detection

Detection rule flags the .phtml extension in uri_path/filename despite spoofed MIME type header.

Test 3 Windows IIS-hosted Joomla upload simulation
windows

Simulates the same unrestricted upload exploitation against an IIS-hosted Joomla lab instance to validate Windows-based W3CIISLog detection coverage.

Command

powershell
Invoke-WebRequest -Uri "http://lab-target-iis/index.php?option=com_balbooaforms&task=form.upload" -Method Post -Form @{file=Get-Item 'C:\temp\test_shell.aspx'}

Cleanup

powershell
Remove-Item C:\temp\test_shell.aspx -Force; Invoke-Command -ComputerName lab-target-iis -ScriptBlock { Remove-Item 'C:\inetpub\wwwroot\media\com_balbooaforms\uploads\test_shell.aspx' -Force -ErrorAction SilentlyContinue }

Expected Telemetry

W3CIISLog entry recording POST to com_balbooaforms endpoint with cs-uri-stem containing test_shell.aspx.

Expected Detection

KQL detection rule matches the .aspx extension within the IIS log cs-uri-stem field for the Balbooa Forms component path.

Related Detections