☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 2.7 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N 🐛 CWE-425
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-102583

CVE-2026-102583 Vulnerability in Moodle
📅 PUBLISHED: 2026-09-30 00:00 UTC 🔄 UPDATED: 2026-10-03 23:54 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.24%
👁️
0.24% probability
6.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1078
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Affected: Moodle — upgrade to patched release
CVSS VECTOR BREAKDOWN 2.7
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
2.7
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-102583 is an authorization weakness in the Moodle learning management system (LMS) affecting the AI editor placement's image generation web service. An incorrect capability check allows an authenticated user who does not hold the required capability to invoke the AI image generation functionality, effectively granting unauthorized access to a privileged feature.

The vulnerability is graded CVSS 3.1 base score 2.7 (Low), reflecting the requirement for valid authentication (PR:H at the vector level for high-privilege contexts), no integrity or availability impact beyond a limited integrity effect (I:L), and no confidentiality impact (C:N) as scored. Exploitation requires network access and a valid authenticated session. No public proof-of-concept, exploit code, or Nuclei template exists, and CISA has not added the CVE to the Known Exploited Vulnerabilities catalog. The EPSS score is not yet available from FIRST.org. No patch has been identified from any tracked source, leaving the flaw effectively unpatched as of this report.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

CWE-425 — Direct Request ("Forced Browsing") — describes the vulnerability class at issue. In CWE-425 scenarios, an application does not adequately enforce authorization on a resource, endpoint, or function, allowing a requester to access functionality that should be gated behind an explicit capability or permission check. The unauthorized party reaches the protected function through a direct request rather than through any exploitation primitive such as memory corruption or injection.

In CVE-2026-102583 specifically, the NVD description states that the flaw resides in the "artificial intelligence (AI) editor placement's image generation web service." The defect is described as an "incorrect capability check." Moodle employs a granular capability/role permission model (the moodle/capability framework) in which each action is gated by a named capability assignment resolved against the user's role in a given context. An "incorrect capability check" implies that the web service endpoint responsible for AI image generation either:

  1. Fails to call the capability-checking function at all before executing the service, or
  2. Calls the check with incorrect parameters (wrong context, wrong capability string, or wrong user object), producing a permissive result where a restrictive one was intended.

Because the exact endpoint path, capability string, class method, and affected Moodle version are not provided in the available intelligence, further code-level claims would be speculative. What is definitively derivable from the data:

  • The affected component is a web service exposed by the AI editor placement subsystem.
  • The exposure is limited to authenticated users — an unauthenticated attacker cannot trigger it.
  • The impacted feature is AI image generation — a resource-consuming operation that normally should require elevated capability.
  • The consequence is unauthorized utilization of that feature, not unauthorized retrieval of other users' data (consistent with C:N in the CVSS vector) and not disruption of system availability (consistent with A:N).

The attack surface is the Moodle web application's HTTP(S) interface, reachable over the network (AV:N). Attack complexity is rated Low (AC:L), indicating no special conditions beyond a valid session and knowledge of the service invocation format. No user interaction is required (UI:N), and the CVSS scope is Unchanged (S:U), meaning the flaw does not cross a security authority boundary beyond the vulnerable component itself.

The I:L (Low integrity impact) reflects that the unauthorized invocation can produce generated content/output or alter feature state that the user was not authorized to create, but with limited overall integrity consequence.


Exploitation Scenarios

No public proof-of-concept is available for CVE-2026-102583. The attack chain below is described at the vulnerability-class level (CWE-425 direct request / missing authorization), using only technical detail explicitly present in the NVD description. Specific endpoint paths, parameter names, and capability strings are deliberately omitted because they are not provided in the source data.

1) Reconnaissance and target identification. An attacker identifies a Moodle instance running an affected version. Because no affected version range is published, any deployment exposing the AI editor placement image generation service must be treated as potentially vulnerable until the vendor clarifies scope. Reconnaissance would include enumerating whether the AI image generation feature is enabled and reachable (the feature is typically an optional subsystem that must be configured).

2) Authenticated positioning. The attacker requires a valid authenticated account on the target Moodle instance (PR:H is reflected in the vector as the highest privilege at which the check is bypassable; in practice, any authenticated account that does not legitimately hold the AI image generation capability is the baseline condition). Low-privilege roles — for example, a standard student or a restricted teacher role — suffice as the starting position, since the flaw is precisely that the required capability is not enforced.

3) Triggering the incorrect capability check (CWE-425). The authenticated user issues a direct request to the AI editor placement's image generation web service, invoking the feature as if they held the capability. Because the capability check is performed incorrectly, the request is accepted rather than rejected. No malformed payload, injection string, or memory-corruption primitive is required — the request is structurally valid and is simply not subject to effective authorization. This is the canonical "forced browsing" pattern: the resource is reachable by direct request despite lacking the intended gate.

4) Post-exploitation impact. Successful invocation permits the unauthorized user to access and utilize the AI image generation functionality. The primary consequences are:

  • Resource/feature abuse: the user consumes AI image generation capacity they were not entitled to, potentially incurring cost or quota consumption.
  • Limited integrity effect (I:L): generated output can be produced or feature state altered without authorization.
  • No direct confidentiality or availability impact as scored (C:N, A:N) — the flaw does not, per the available data, expose other users' data or degrade system availability.

No evidence of exploit-in-the-wild, weaponization, or threat-actor adoption exists in the provided data. The chain above is a reasoned reconstruction from the vulnerability class and the stated consequence, not a validated exploit.


Impact Assessment

Business impact. The direct business impact is the unauthorized consumption of a metered/paid AI image generation service and the bypassing of licensing or entitlement controls for that feature. For organizations that expose Moodle broadly (universities, enterprises with internal LMS training portals), the exposure is reachable by any authenticated user, including the large population of low-privilege learners.

Affected systems. Moodle LMS deployments that have the AI editor placement image generation web service enabled and reachable. Hosting may be on-premises or cloud-managed (including MoodleCloud and third-party Moodle hosting providers).

Blast radius. Bounded by authentication: only users who can log in can trigger the flaw. Because propagation is not implied (S:U) and the flaw is confined to feature authorization rather than session or data compromise, lateral movement from this vulnerability alone is not indicated by the data.

CVSS subscores referenced. AV:N (network-reachable), AC:L (no special conditions), PR:H (requires authenticated high-privilege vector), UI:N (no user interaction), S:U (unchanged scope), C:N (no confidentiality impact), I:L (limited integrity impact), A:N (no availability impact) — aggregate base score 2.7 (Low).

EPSS. Not yet scored by FIRST.org at the time of this report; no exploitation-probability estimate can be provided.

KEV / weaponization. Not listed in CISA KEV. No public exploit code or Nuclei template identified. Practical risk is therefore currently low, but the absence of a vendor patch elevates residual risk over time.


Detection Guidance

Detection logic below keys on the observable pattern of an authenticated, low-privileged user invoking the AI image generation web service. Because specific endpoint paths and parameter names are not published, the rules use generic behavioral anchors (Moodle web service request patterns and AI image generation feature access) that defenders should tune to their deployment once the affected endpoint is confirmed.

Sigma Rule

title: Moodle AI Image Generation Web Service Invocation by Unprivileged User
id: 8f1c2a44-3b7e-4d92-9c15-6a0e5d2f7b31
status: experimental
description: Detects authenticated Moodle users invoking the AI editor placement image generation web service without the required capability (CVE-2026-102583, CWE-425).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-102583
author: Threat Intelligence
date: 2026/01/01
tags:
  - attack.t1078
  - attack.t1548
  - cve.2026.102583
logsource:
  category: webserver
  product: moodle
detection:
  selection_endpoint:
    cs-uri-query|contains:
      - 'ai'
      - 'image'
      - 'generate'
      - 'placement'
  selection_service:
    cs-uri-query|contains:
      - 'webservice'
      - 'ws'
      - 'ajax'
  filter_privileged:
    cs-username:
      - 'admin'
  condition: selection_endpoint and selection_service and not filter_privileged
fields:
  - c-ip
  - cs-username
  - cs-uri
  - cs-uri-query
falsepositives:
  - Legitimate administrators or authorized AI editors invoking the feature
  - Automated integrations with the appropriate capability
level: low

Note: cs-uri-query anchors are illustrative behavioral hints. Defenders must replace them with the exact endpoint/parameters once the vendor publishes the affected route.

YARA Rule

rule CVE_2026_102583_Moodle_AI_ImageGen_CapabilityCheck
{
    meta:
        description = "Detects Moodle source or server-side artifacts referencing the AI editor placement image generation web service implicated in CVE-2026-102583"
        author = "Threat Intelligence"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-102583"
        date = "2026-01-01"
        cve = "CVE-2026-102583"
        cwe = "CWE-425"

    strings:
        $ai1 = "aiplacement" ascii nocase
        $ai2 = "aiplacement_" ascii nocase
        $img1 = "generate_image" ascii nocase
        $img2 = "imagegeneration" ascii nocase
        $cap1 = "has_capability" ascii nocase
        $cap2 = "require_capability" ascii nocase
        $cap3 = "isloggedin" ascii nocase
        $ws1 = "external_api" ascii nocase
        $ws2 = "webservice" ascii nocase

    condition:
        (uint32(0) == 0x04034b50 or filesize < 20MB) and
        (1 of ($ai*) ) and
        (1 of ($img*) ) and
        (1 of ($ws*) )
}

Note: string identifiers are behavioral anchors, not confirmed symbol names. The rule is intended for retrospective source/artifact hunting in a Moodle codebase to locate the relevant plugin and capability-check site.

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-102583 Moodle AI Image Generation Web Service Unauthorized Invocation Attempt"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"webservice"; http.uri; content:"ai"; http.uri; content:"image"; classtype:attempted-user; reference:cve,2026-102583; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-102583; metadata:affected_product Moodle, attack_target Web_Server, deployment Perimeter, signature_severity Minor, created_at 2026_01_01, cve CVE_2026_102583; sid:2026102583; rev:1;)

Note: URI content anchors must be adapted to the real affected route. This signature is a behavioral approximation pending vendor disclosure of the exact endpoint path.

Elastic Detection

sequence by user.name, source.ip with maxspan=1m
  [ authentication where event.outcome == "success" and user.name != null ]
  [ network where
      network.protocol == "http" and
      http.request.method == "POST" and
      (http.request.body.bytes : "*ai*" or http.request.body.bytes : "*image*") and
      (url.path : "*webservice*" or url.path : "*ajax*" or url.path : "*ai*") ]

This sequence detects a successful login immediately followed by a POST to a Moodle web-service/AI endpoint — the canonical CWE-425 direct-request pattern for this CVE. Tune url.path to the confirmed affected route.

Splunk SPL Query

index=web sourcetype=moodle_access OR sourcetype=apache:access OR sourcetype=nginx:access
| search (uri_path="*webservice*" OR uri_path="*ai*" OR uri_path="*ajax*") AND uri_path="*image*"
| eval privileged=if(match(user,"^(admin|manager|ai.*editor)"),"yes","no")
| where privileged="no" AND status=200
| stats count min(_time) as first_seen max(_time) as last_seen values(uri_path) as paths by src_ip, user
| where count >= 3
| sort - count

Aggregates repeated successful (HTTP 200) invocations of the AI image generation service by non-privileged users. Adjust the user allowlist to reflect accounts that legitimately hold the AI capability.

Wazuh OSSEC Rule

<group name="moodle,cve-2026-102583,">
  <rule id="102583" level="5">
    <decoded_as>json</decoded_as>
    <field name="url">webservice</field>
    <field name="url">ai</field>
    <field name="url">image</field>
    <description>CVE-2026-102583: Possible unauthorized invocation of Moodle AI image generation web service</description>
    <mitre>
      <id>T1078</id>
      <id>T1548</id>
    </mitre>
    <group>web,appsec,</group>
  </rule>

  <rule id="102584" level="0">
    <if_sid>102583</if_sid>
    <field name="user">admin</field>
    <description>Suppress CVE-2026-102583 alert for privileged admin account</description>
  </rule>
</group>

Assumes Moodle access logs are parsed to JSON and contain a url and user field. Suppression rule prevents noise from legitimate privileged accounts.


Mitigation & Patch Guidance

Patch confidence: 0/4 — UNPATCHED. No vendor fix, patch source, workaround, or advisory has been identified from any tracked source. The following guidance is therefore compensating-control based.

1) Immediate mitigations (no vendor patch available):

  • Disable the AI editor placement image generation feature if it is not actively required. The vulnerability exists in that specific web service; removing the feature removes the exposure.
  • If the feature is required, restrict access at the reverse proxy / WAF layer to the AI image generation web service endpoint so that only trusted roles/IP ranges can reach it, effectively re-imposing the authorization gate the code failed to enforce.
  • Enforce least privilege on Moodle roles: audit which roles are granted AI-related capabilities and remove AI image generation entitlements from roles that should not have them.
  • Monitor AI generation usage/quota for anomalous consumption that would indicate unauthorized invocation by low-privilege accounts.
  • Treat every authenticated account as potentially able to trigger the flaw until the affected version range is published — assume exposure is instance-wide where the feature is enabled.

2) Patch/upgrade steps (pending vendor release):

  • Monitor the Moodle security advisories and release notes pages for a fix referencing CVE-2026-102583.
  • When a patched release ships, upgrade to the fixed version; the specific version is unknown at this time because no patch evidence exists.
  • If operating via a managed host (MoodleCloud or third-party), submit a support request referencing CVE-2026-102583 and request the fix timeline.

3) Long-term hardening:

  • Adopt a policy of capability-check-at-entry for all Moodle external/web services, with automated unit tests asserting that unprivileged roles are denied.
  • Implement centralized authorization testing in CI so that new AI/plugin endpoints cannot ship without enforcement of their declared capability.
  • Maintain an inventory of enabled AI subsystems and treat their endpoints as sensitive attack surface.
  • Continue to track EPSS/KEV for this CVE; re-prioritize remediation if exploitation activity emerges.

References

  1. NVD — CVE-2026-102583: https://nvd.nist.gov/vuln/detail/CVE-2026-102583
  2. MITRE CWE-425 — Direct Request ("Forced Browsing"): https://cwe.mitre.org/data/definitions/425.html
  3. Moodle Security Advisories / Announcements (vendor source to monitor for the fix): https://moodle.org/security/
  4. FIRST EPSS (currently no score assigned for this CVE): https://www.first.org/epss/
  5. CISA Known Exploited Vulnerabilities Catalog (CVE-2026-102583 not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Exploit-in-the-wild / campaign evidence: None. No public PoC, no exploit code, no Nuclei template, and no CISA KEV entry were identified in the available intelligence. No threat-actor campaign has been associated with CVE-2026-102583.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Moodle"
title:"Moodle"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-102583/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.