Skip to content

Apache Struts CVE-2017-5638 module fails to detect vulnerability on Struts 2.5.10 instance #1170

@08062003

Description

@08062003

Description:
The apache_struts_vuln module in Nettacker 0.4.0 fails to detect the Apache Struts CVE-2017-5638 Remote Code Execution vulnerability on a known vulnerable Struts 2.5.10 server setup (http://192.168.29.62:8080/struts2-showcase/fileupload/upload.action).

Despite confirmed manual curl tests proving the vulnerability exists and that the server executes injected commands, Nettacker reports:

text
[+] there are no events exist to create a report! skipping this section.
and no vulnerability detection.

Steps to reproduce:
Set up or point Nettacker scan to http://192.168.29.62:8080/struts2-showcase/fileupload/upload.action.

Run Nettacker scan with command:

text
python3.11 /home/kali/Nettacker/nettacker.py -i http://192.168.29.62:8080/struts2-showcase/fileupload/upload.action -m apache_struts_vuln -d -vvv
Observe that Nettacker fails to detect the vulnerability even though the server is vulnerable.

Confirm manually the vulnerability using curl with OGNL payload in the Content-Type header triggering remote command execution.

Expected behavior:
The module should detect the vulnerability and produce evidence detailing the command execution output or injected header indicators.

A proper report with the vulnerability details should be generated.

Actual behavior:
Nettacker does not detect the vulnerability.

Logs contain the message:

text
[+] there are no events exist to create a report! skipping this section.
No scanned vulnerabilities reported despite the vulnerable server.

Additional information:
Possible cause: multipart payload formatting mismatch or incorrect detection conditions on response.

The multipart request requires strict CRLF line endings and exact boundary matching.

Manual tests confirm the server is vulnerable.

Nettacker payload may require adjustments to send properly formatted multipart bodies (CRLF) and improved response checks (including command output in response body).

Suggested fixes / workarounds:
Update apache_struts_vuln payload to send exact CRLF multipart bodies.

Include body content regex detection for command output (e.g., uid=...) in addition to header detection.

Improve logging or debugging output in Nettacker to inspect raw server responses during scans.

Environment:
Nettacker version: 0.4.0 QUIN

Target OS: Apache Tomcat hosting Struts 2.5.10 Showcase on Debian-based system

Test executed on Kali Linux with Python 3.11

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions