Skip to content

Limited Course Staff can access Studio APIs

High
ormsbee published GHSA-cq7m-mhqc-jrx6 Jun 17, 2024

Package

edx-platform

Affected versions

master

Patched versions

Redwood

Description

Impact

#32570 introduced the concept of a limited staff role. This role is meant to only access LMS related staff capabilities and should not be able to access or make any studio changes. Later, there was added a fix to allow limited staff to manage cohorts and access the gradebook #33491. As a result, the limited staff member can hit the studio APIs and make changes.

List of affected APIs:

GET Success (200-204)

Common for all pages

{{ CMS_DOMAIN }}/csrf/api/v1/token
{{ CMS_DOMAIN }}/api/contentstore/v1/help_urls

Course outline page

{{ CMS_DOMAIN }}/api/courses/v1/quality/course-v1:{{ COURSE_ID }}/?exclude_graded=true&all=true
{{ CMS_DOMAIN }}/api/courses/v1/validation/course-v1:{{ COURSE_ID }}/?graded_only=true&validate_oras=true&all=true
{{ CMS_DOMAIN }}/api/content_tagging/v1/object_tag_counts/course-v1:{{ COURSE_ID }}/?count_implicit

Course Updates

{{ CMS_DOMAIN }}/course_info_update/course-v1:{{ COURSE_ID }}/

Pages&Resources

{{ CMS_DOMAIN }}/api/course_apps/v1/apps/course-v1:{{ COURSE_ID }}
{{ CMS_DOMAIN }}/api/course_live/providers/course-v1:{{ COURSE_ID }}/
{{ CMS_DOMAIN }}/api/course_live/course/course-v1:{{ COURSE_ID }}/
{{ CMS_DOMAIN }}/api/discussions/v0/course/course-v1:{{ COURSE_ID }}/settings
{{ CMS_DOMAIN }}/api/discussions/v0/course/course-v1:{{ COURSE_ID }}/providers
{{ CMS_DOMAIN }}/api/discussions/v0/course/course-v1:{{ COURSE_ID }}/settings?provider_id=openedx

Files

{{ CMS_DOMAIN }}/assets/course-v1:{{ COURSE_ID }}/?page=0

Advanced settings

{{ CMS_DOMAIN }}/api/contentstore/v1/proctoring_errors/course-v1:{{ COURSE_ID }}

Certificates

{{ CMS_DOMAIN }}/api/contentstore/v1/certificates/course-v1:{{ COURSE_ID }}
{{ CMS_DOMAIN }}/asset-v1:{{ COURSE_ID }}+type@asset+block@{{ FILE_NAME }}
{{ CMS_DOMAIN }}/certificates/course-v1:{{ COURSE_ID }}
{{ CMS_DOMAIN }}/certificates/activation/course-v1:{{ COURSE_ID }}/

Import

{{ CMS_DOMAIN }}/import_status/course-v1:{{ COURSE_ID }}/demo-course.tar.gz

Export

{{ CMS_DOMAIN }}/export_status/course-v1:{{ COURSE_ID }}

POST Success (200-204)

{{ CMS_DOMAIN }}/course_info_update/course-v1:{{ COURSE_ID }}/

Pages&Resources

{{ CMS_DOMAIN }}/api/course_live/course/course-v1:{{ COURSE_ID }}/
{{ CMS_DOMAIN }}/api/discussions/v0/course/course-v1:{{ COURSE_ID }}/settings

Textbooks

{{ CMS_DOMAIN }}/assets/course-v1:{{ COURSE_ID }}/

Certificates

{{ CMS_DOMAIN }}/assets/course-v1:{{ COURSE_ID }}/

Import

{{ CMS_DOMAIN }}/import/course-v1:{{ COURSE_ID }}

Export

{{ CMS_DOMAIN }}/export/course-v1:{{ COURSE_ID }}

DELETE Success (200-204)

Course Updates

{{ CMS_DOMAIN }}/course_info_update/course-v1:{{ COURSE_ID }}/{{ UPDATE_ID }}

Files

{{ CMS_DOMAIN }}/assets/course-v1:{{ COURSE_ID }}/asset-v1:{{ COURSE_ID }}+type@asset+block@{{ FILE_NAME }}

Certificates

{{ CMS_DOMAIN }}/certificates/course-v1:{{ COURSE_ID }}/{{ CERTIFICATE_ID }}

PUT Success (200-204)

Course Updates

{{ CMS_DOMAIN }}/xblock/block-v1:{{ COURSE_ID }}+type@course_info+block@handouts

Files

{{ CMS_DOMAIN }}/assets/course-v1:{{ COURSE_ID }}/asset-v1:{{ COURSE_ID }}+type@asset+block@{{ FILE_NAME }}

PATCH Success (200-204)

Pages&Resources

{{ CMS_DOMAIN }}/api/course_apps/v1/apps/course-v1:{{ COURSE_ID }}

GET Success (302)

Import

{{ CMS_DOMAIN }}/import/course-v1:{{ COURSE_ID }}

Export

{{ CMS_DOMAIN }}/export/course-v1:{{ COURSE_ID }}

Checklists

{{ CMS_DOMAIN }}/checklists/course-v1:{{ COURSE_ID }}

Patches

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
High
User interaction
None
Scope
Changed
Confidentiality
Low
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:N

CVE ID

No known CVE

Weaknesses

No CWEs