A missing authorization check on the SAP NetWeaver Visual Composer Metadata Uploader allows unauthenticated file upload leading to remote code execution as the SAP administrator.
SAP disclosed CVE-2025-31324 in an out-of-band advisory on 24 April 2025 after ReliaQuest and Onapsis observed active exploitation against Internet-facing NetWeaver Java systems. The bug is a missing authorization check on the Metadata Uploader endpoint of Visual Composer, which lets an unauthenticated attacker upload a JSP file to the servlet directory and execute it. CVSS 10.0. CISA added it to the KEV catalog within a week.
The /developmentserver/metadatauploader endpoint on NetWeaver Java servers accepts POST requests without checking authentication or file type. An attacker uploads a JSP webshell to the deployed application directory and then requests it directly.
The uploaded JSP is placed inside the webapps directory and served by Tomcat with no further checks.
Execution happens as the SAP administrative user (<sid>adm) which owns the SAP install directory. From that position an attacker can read the SAP secure store, dump credentials, and pivot to the database and connected ABAP systems.
VCFRAMEWORK, up to and including support package levels listed in the SAP note. Visual Composer must be enabled — it is enabled by default on developer editions and on many production installs that host portal or process integration content.External exposure of the Java stack is the main risk. Internal exposure to any workstation network is enough for a foothold-stage attacker.
Confirm whether the Java stack answers the uploader path:
Anything other than 404 warrants immediate patching or the workaround.
Search the webapps deployment directory for JSP files that do not belong to the standard SAP distribution:
SAP-shipped webapps live under sap.com~* directories. Anything else recently modified is suspicious.
Review the Tomcat access log for POSTs to metadatauploader from external IPs.
Web Dispatcher rewrite rule blocking the vulnerable endpoint until the patch is applied.
<sid>adm, the Secure Store master password, and every credential in the AS Java user store. Hunt for JSP webshells and outbound connections from the SAP host.github.com/nairuzabulhul/nuclei-template-cve-2025-31324-checkCommunity Nuclei template used to identify exposed instances.
github.com/sug4r-wr41th/CVE-2025-31324Primary references.
Object-level access control failures accounted for the largest share of high-severity findings this year. Patterns and fixes.
ReadHow to define the CDE boundary, what segmentation testing must show, and the evidence your QSA will ask for.
ReadA stack overflow in the SNMP subsystem of Cisco IOS and IOS XE lets an attacker with SNMP access cause a device reload, and with additional administrative credentials, execute code as root. Actively exploited before the patch.
ReadAn unauthenticated ViewState deserialization in on-premises SharePoint Server allows remote code execution as the IIS worker. Mass exploitation began before the out-of-band patch.
Read