Moderate severityNVD Advisory· Published Jun 1, 2015· Updated May 6, 2026
CVE-2015-0215
CVE-2015-0215
Description
calendar/externallib.php in Moodle through 2.5.9, 2.6.x before 2.6.7, 2.7.x before 2.7.4, and 2.8.x before 2.8.2 allows remote authenticated users to obtain sensitive calendar-event information via a web-services request.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
moodle/moodlePackagist | < 2.6.7 | 2.6.7 |
moodle/moodlePackagist | >= 2.7.0, < 2.7.4 | 2.7.4 |
moodle/moodlePackagist | >= 2.8.0, < 2.8.2 | 2.8.2 |
Affected products
22cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*+ 21 more
- cpe:2.3:a:moodle:moodle:*:*:*:*:*:*:*:*range: <=2.5.9
- cpe:2.3:a:moodle:moodle:2.5.0:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.1:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.2:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.3:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.4:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.5:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.6:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.7:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.5.8:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.0:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.1:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.2:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.3:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.4:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.5:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.6.6:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.7.0:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.7.1:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.7.2:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.7.3:*:*:*:*:*:*:*
- cpe:2.3:a:moodle:moodle:2.8.0:*:*:*:*:*:*:*
Patches
45770e5147838MDL-48106 mod_glossary: Add missing sesskey checks
2 files changed · +5 −0
mod/glossary/editcategories.html+1 −0 modified@@ -33,6 +33,7 @@ <tr> <td colspan="2"> <div class="buttons"> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="<?php p($action) ?>" /> <input type="hidden" name="confirm" value="1" />
mod/glossary/editcategories.php+4 −0 modified@@ -95,6 +95,7 @@ if ( $action == "edit" ) { if ( $confirm ) { + require_sesskey(); $action = ""; $cat = new stdClass(); $cat->id = $hook; @@ -128,6 +129,7 @@ } elseif ( $action == "delete" ) { if ( $confirm ) { + require_sesskey(); $DB->delete_records("glossary_entries_categories", array("categoryid"=>$hook)); $DB->delete_records("glossary_categories", array("id"=>$hook)); @@ -165,6 +167,7 @@ <td align="$rightalignment" style="width:50%"> <form id="form" method="post" action="editcategories.php"> <div> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="delete" /> <input type="hidden" name="confirm" value="1" /> @@ -188,6 +191,7 @@ } elseif ( $action == "add" ) { if ( $confirm ) { + require_sesskey(); $dupcategory = $DB->get_records_sql("SELECT * FROM {glossary_categories} WHERE ".$DB->sql_like('name','?', false)." AND glossaryid=?", array($name, $glossary->id)); if ( $dupcategory ) { redirect("editcategories.php?id=$cm->id&action=add&name=$name", get_string("duplicatecategory", "glossary"), 2);
c4250ef4f237MDL-48106 mod_glossary: Add missing sesskey checks
2 files changed · +5 −0
mod/glossary/editcategories.html+1 −0 modified@@ -33,6 +33,7 @@ <tr> <td colspan="2"> <div class="buttons"> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="<?php p($action) ?>" /> <input type="hidden" name="confirm" value="1" />
mod/glossary/editcategories.php+4 −0 modified@@ -95,6 +95,7 @@ if ( $action == "edit" ) { if ( $confirm ) { + require_sesskey(); $action = ""; $cat = new stdClass(); $cat->id = $hook; @@ -128,6 +129,7 @@ } elseif ( $action == "delete" ) { if ( $confirm ) { + require_sesskey(); $DB->delete_records("glossary_entries_categories", array("categoryid"=>$hook)); $DB->delete_records("glossary_categories", array("id"=>$hook)); @@ -165,6 +167,7 @@ <td align="$rightalignment" style="width:50%"> <form id="form" method="post" action="editcategories.php"> <div> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="delete" /> <input type="hidden" name="confirm" value="1" /> @@ -188,6 +191,7 @@ } elseif ( $action == "add" ) { if ( $confirm ) { + require_sesskey(); $dupcategory = $DB->get_records_sql("SELECT * FROM {glossary_categories} WHERE ".$DB->sql_like('name','?', false)." AND glossaryid=?", array($name, $glossary->id)); if ( $dupcategory ) { redirect("editcategories.php?id=$cm->id&action=add&name=$name", get_string("duplicatecategory", "glossary"), 2);
e83c756f84e1MDL-48106 mod_glossary: Add missing sesskey checks
2 files changed · +5 −0
mod/glossary/editcategories.html+1 −0 modified@@ -33,6 +33,7 @@ <tr> <td colspan="2"> <div class="buttons"> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="<?php p($action) ?>" /> <input type="hidden" name="confirm" value="1" />
mod/glossary/editcategories.php+4 −0 modified@@ -95,6 +95,7 @@ if ( $action == "edit" ) { if ( $confirm ) { + require_sesskey(); $action = ""; $cat = new stdClass(); $cat->id = $hook; @@ -118,6 +119,7 @@ } elseif ( $action == "delete" ) { if ( $confirm ) { + require_sesskey(); $DB->delete_records("glossary_entries_categories", array("categoryid"=>$hook)); $DB->delete_records("glossary_categories", array("id"=>$hook)); @@ -146,6 +148,7 @@ <td align="$rightalignment" style="width:50%"> <form id="form" method="post" action="editcategories.php"> <div> + <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /> <input type="hidden" name="id" value="<?php p($cm->id) ?>" /> <input type="hidden" name="action" value="delete" /> <input type="hidden" name="confirm" value="1" /> @@ -169,6 +172,7 @@ } elseif ( $action == "add" ) { if ( $confirm ) { + require_sesskey(); $dupcategory = $DB->get_records_sql("SELECT * FROM {glossary_categories} WHERE ".$DB->sql_like('name','?', false)." AND glossaryid=?", array($name, $glossary->id)); if ( $dupcategory ) { redirect("editcategories.php?id=$cm->id&action=add&name=$name", get_string("duplicatecategory", "glossary"), 2);
76aea854f687MDL-48017 core_calendar: add context validation to get_calendar_events
1 file changed · +11 −5
calendar/externallib.php+11 −5 modified@@ -173,13 +173,19 @@ public static function get_calendar_events($events = array(), $options = array() // Let us findout courses that we can return events from. if (!$hassystemcap) { - $courses = enrol_get_my_courses(); - $courses = array_keys($courses); foreach ($params['events']['courseids'] as $id) { - if (in_array($id, $courses)) { + try { + $context = context_course::instance($id); + self::validate_context($context); $funcparam['courses'][] = $id; - } else { - $warnings[] = array('item' => $id, 'warningcode' => 'nopermissions', 'message' => 'you do not have permissions to access this course'); + } catch (Exception $e) { + $warnings[] = array( + 'item' => 'course', + 'itemid' => $id, + 'warningcode' => 'nopermissions', + 'message' => 'No access rights in course context '.$e->getMessage().$e->getTraceAsString() + ); + continue; } } } else {
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
8- github.com/advisories/GHSA-fr9m-pjmm-qx9fghsaADVISORY
- moodle.org/mod/forum/discuss.phpnvdVendor AdvisoryWEB
- nvd.nist.gov/vuln/detail/CVE-2015-0215ghsaADVISORY
- openwall.com/lists/oss-security/2015/01/19/1nvdWEB
- github.com/moodle/moodle/commit/5770e5147838aa06a3ecdff6fc3aebbbd17fff90ghsaWEB
- github.com/moodle/moodle/commit/76aea854f6877cc5accb288bc6ac60bc55d30788ghsaWEB
- github.com/moodle/moodle/commit/c4250ef4f23776ff4862d2860b6be2cf7b2d85f6ghsaWEB
- github.com/moodle/moodle/commit/e83c756f84e16ab70e160e08deb84e9bc4bfbfeaghsaWEB
News mentions
0No linked articles in our index yet.