CVE-2025-60511

4.3 MEDIUM

📋 TL;DR

The Moodle OpenAI Chat Block plugin has an Insecure Direct Object Reference vulnerability that allows authenticated students to impersonate other users' chat blocks. This enables unauthorized access to administrator-only configurations and potential misuse of OpenAI API resources. All Moodle installations using the vulnerable plugin version are affected.

💻 Affected Systems

Products:
  • Moodle OpenAI Chat Block plugin
Versions: 3.0.1 (2025021700)
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires Moodle installation with the vulnerable plugin version and authenticated student access.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Students access administrator-only Source of Truth entries, alter AI model behavior, misuse API resources leading to financial costs, and potentially expose sensitive institutional information.

🟠

Likely Case

Students impersonate other users' blocks to send queries with different configurations, potentially accessing restricted information or altering chat behavior.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to unauthorized query execution without data exfiltration or system compromise.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Proof of concept available in public disclosure. Requires authenticated student account and knowledge of target block IDs.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 3.0.1 (2025021700)

Vendor Advisory: https://github.com/onurcangnc/moodle_block_openai_chat

Restart Required: No

Instructions:

1. Update Moodle OpenAI Chat Block plugin to latest version. 2. Remove or disable version 3.0.1 (2025021700). 3. Verify proper access controls are implemented in completion.php.

🔧 Temporary Workarounds

Disable vulnerable endpoint

all

Temporarily disable the /blocks/openai_chat/api/completion.php endpoint

mv /path/to/moodle/blocks/openai_chat/api/completion.php /path/to/moodle/blocks/openai_chat/api/completion.php.disabled

Implement additional access controls

all

Add session validation and user permission checks in completion.php

Edit completion.php to validate user permissions before processing blockId parameter

🧯 If You Can't Patch

  • Restrict student access to OpenAI Chat Block functionality
  • Implement network-level monitoring for unusual API calls to OpenAI services

🔍 How to Verify

Check if Vulnerable:

Check plugin version in Moodle admin panel or examine /blocks/openai_chat/version.php for version 2025021700

Check Version:

grep -r "plugin->version" /path/to/moodle/blocks/openai_chat/version.php

Verify Fix Applied:

Verify plugin version is updated beyond 2025021700 and test that students cannot access other users' block configurations

📡 Detection & Monitoring

Log Indicators:

  • Unusual blockId parameter values in completion.php requests
  • Student accounts accessing administrator-configured blocks
  • Multiple block IDs from single user session

Network Indicators:

  • Unusual OpenAI API call patterns from student accounts
  • Requests to completion.php with sequential or non-user block IDs

SIEM Query:

source="moodle_logs" AND uri="/blocks/openai_chat/api/completion.php" AND user_role="student" AND blockId!="user_block"

🔗 References

📤 Share & Export