Back to skill

Security audit

Moodle Web Services Skill

Security checks across malware telemetry and agentic risk

Overview

This Moodle skill has a legitimate administrative purpose, but it includes under-disclosed bulk deletion and mass messaging powers that can affect a live Moodle site without clear confirmation safeguards.

Install only if you administer the target Moodle instance and can provide a least-privilege token. Review or remove the maintenance deletion scripts before use, avoid running them against production without backups and explicit human confirmation, and treat bulk messaging as sensitive because it can contact many students from a trusted Moodle account.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (13)

Lp3

Medium
Category
MCP Least Privilege
Confidence
79% confidence
Finding
The skill clearly describes capabilities that require network access to a Moodle instance and access to a local secrets file, yet it does not declare permissions or scope those capabilities. That creates a transparency and control problem: operators and users cannot reliably understand what the skill may do or restrict it appropriately, increasing the risk of unintended writes to Moodle data or secret handling mistakes.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The script performs destructive course deletion even though the declared skill scope only covers creating/updating courses, enrollments, activities, grades, listings, and messaging. In an agent skill context, capability drift like this is dangerous because it enables irreversible actions that users and reviewers would not reasonably expect from the published manifest.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The comment claims the script deletes only 'empty' courses, but the code never verifies that condition before calling the delete API. If /tmp/vacios.json is stale, incorrect, or tampered with, the script can permanently delete non-empty or important courses based solely on supplied IDs.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
El script añade una capacidad destructiva de borrado masivo de categorías en Moodle que no aparece en la descripción declarada del skill, lo que amplía silenciosamente su alcance operativo. Esto es peligroso porque permite eliminar estructura académica completa usando el token configurado, fuera de las expectativas del usuario y sin controles compensatorios visibles.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
La limpieza/borrado masivo de categorías es una operación de alto riesgo e inapropiada para un skill presentado como integración para cursos, matrículas, actividades, calificaciones y mensajería. En este contexto, la capacidad es más peligrosa porque un operador podría invocarla sin esperar que el skill tenga permisos de eliminación estructural tan amplios.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
La skill implementa mensajería masiva por curso y entre todos los cursos, una capacidad mucho más sensible que 'enviar mensajes internos a alumnos' en abstracto. En contexto de un agente, esta omisión reduce la visibilidad del operador sobre una acción de alto alcance y facilita abuso, spam o envíos accidentales a gran escala.

Missing User Warnings

Medium
Confidence
83% confidence
Finding
The skill enables impactful operations on educational records and communications, including enrollment changes, grade submission, course/activity creation, and internal messaging, but it provides no user-facing warning about destructive actions, privacy implications, or the need for confirmation. In a Moodle context, these actions can affect student data and academic workflows, so lack of disclosure and guardrails materially raises the risk of accidental misuse.

Missing User Warnings

High
Confidence
96% confidence
Finding
The script executes irreversible deletions in bulk with no interactive confirmation, dry-run mode, or secondary approval step. In an agent-integrated maintenance tool, this sharply increases the chance of accidental or unauthorized mass deletion from bad input, operator error, or upstream automation mistakes.

Missing User Warnings

Medium
Confidence
99% confidence
Finding
El script ejecuta borrados de categorías de forma automática una vez identificadas, sin advertencia clara, confirmación interactiva ni mecanismo de revisión previa. Esto incrementa significativamente el riesgo de pérdida accidental o masiva de datos, especialmente porque usa recursive=1 y newparent=0 en una operación destructiva sobre la estructura de cursos.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
La función envía mensajes a todos los alumnos de un curso sin confirmación previa, vista previa ni límite de destinatarios. En una integración con Moodle, un error de prompt, de parámetro o de intención del usuario puede producir spam, phishing interno o comunicaciones no autorizadas a una cohorte completa.

Missing User Warnings

High
Confidence
99% confidence
Finding
Esta función recorre todos los cursos y envía mensajes a todos los alumnos sin advertencia ni aprobación específica, multiplicando enormemente el alcance del daño. En el contexto de una skill de agente con token privilegiado de Moodle, un uso accidental o malicioso podría impactar a toda la institución con spam, ingeniería social o comunicaciones fraudulentas.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
La creación de cursos es una operación persistente de alto impacto administrativo y aquí se ejecuta inmediatamente sin confirmación, validación fuerte ni revisión previa. En un entorno automatizado, un error de interpretación del agente o un prompt malicioso puede provocar creación no autorizada o proliferación de cursos basura.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
Duplicar un curso clona estructura y potencialmente configuración académica en un sistema productivo, pero la función lo hace sin confirmación ni controles adicionales. En contexto de Moodle, esto puede generar contenido duplicado no autorizado, exposición accidental de materiales/configuración y desorden administrativo a gran escala.

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.