NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐘
🐘 Packagist
Not in CISA KEV
MEDIUM severity

CVE-2023-30943 — moodle

MEDIUMFix: moodle/moodle@59d42e1

CVE-2023-30943 is a medium-severity (CVSS 6.5) CWE-73 vulnerability in moodle/moodle. 4 public exploit or proof-of-concept references are indexed, so weaponization risk is real. A fix is available for moodle/moodle — see the affected versions and patch details below.

Moodle: tinymce loaders susceptible to arbitrary folder creation

Also known asBIT-moodle-2023-30943GHSA-22gj-8qj2-fj46
Published
Updated
Affected
1 pkg
Patched
1 / 1
Exploits
4 known
Exploitation data as of Nov 5, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

EPSS Exploitation Probability

via FIRST.org ↗
6.8%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs94th percentile — riskier than 94% of all scored CVEsHighest risk
0.53%11.3%22.1%32.8%26.8%6.8%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

1 pkg affected
🐘moodle/moodle

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.

Description

The vulnerability was found Moodle which exists because the application allows a user to control path of the older to create in TinyMCE loaders. A remote user can send a specially crafted HTTP request and create arbitrary folders on the system.

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐘Packagistmoodle/moodleall versions4.2.0-rc2composer require moodle/moodle:^4.2.0-rc2

Affected Products

3 products · 5 configurations
Application
extra packages for enterprise linuxfedoraproject
1 version
7.0
OS
fedorafedoraproject
3 versions
363738
Application
moodlemoodle
≥ 4.1.0 && < 4.1.3
range
Exploits & PoCs
4

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for moodle/moodle, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update moodle/moodle to 4.2.0-rc2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-30943 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

How to detect CVE-2023-30943

A community-maintained Nuclei template exists for this CVE. You can scan for it directly:

nuclei -id cve-2023-30943 -u https://target
Template
Moodle - Cross-Site Scripting/Remote Code Execution
Severity
medium
Impact
Successful exploitation of these vulnerabilities could lead to unauthorized access, data theft, and potential compromise of the Moodle application and its users.
Remediation
Apply the latest security patches and updates from the vendor to address this vulnerability.

Template by ProjectDiscovery nuclei-templates (ritikchaddha), MIT licensed. View the full template. Scan only systems you are authorised to test.

Frequently Asked Questions

The vulnerability was found Moodle which exists because the application allows a user to control path of the older to create in TinyMCE loaders. A remote user can send a specially crafted HTTP request and create arbitrary folders on the system.
O3 Security · Impact-Aware SCA

Is CVE-2023-30943 in your dependencies?

Find it across Packagist, including transitive dependencies.

CVE-2023-30943: moodle — Fixed in 4.2.0-rc2