{"id":"CVE-2026-97702","kind":"vulnerability","aliases":["CVE-2026-97702"],"related":[],"title":"Open edX: any logged-in learner can probe account existence and staff roles","description":"Open edX Platform enables the authoring and delivery of online learning at any scale. From the Ulmo release until release/ulmo.4 and release/verawood.1, the GET /api/support/v1/manage_course_team/ endpoint in CourseTeamManageAPIView requires only IsAuthenticated and omits the global support-role authorization check intended for this help-desk surface. Any authenticated learner can supply an email, username, or user_id for an arbitrary target and use the 200 and 404 response discrepancy to distinguish an active account from an absent or inactive account. A caller with a course-level or organization-level instructor role can additionally obtain the target user's staff or instructor assignments within the caller's course or organization scope. Anonymous callers remain blocked, and the separately authorized PUT behavior is outside this vulnerability. This issue is fixed in release/ulmo.4 and release/verawood.1.","summary":"The Open edX course platform exposes a support endpoint that only checks that a caller is logged in, not that they hold the support role. Any authenticated learner can tell whether an arbitrary email, username or user ID belongs to an active account, and course or organization instructors can see the staff and instructor assignments of the target user.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["learning-platform","open-edx","runtime","self-hosted"],"not_affected_if":["already-on-fixed-release","anonymous-only-access","managed-hosting-patched"],"how_to_check":"- Check the installed Open edX release: versions from the Ulmo line before `release/ulmo.4` or the Verawood line before `release/verawood.1` are affected.\n- Look for the endpoint `/api/support/v1/manage_course_team/` in the platform code (`CourseTeamManageAPIView`) and confirm whether it checks the global support role.","fix":"- Move to `release/ulmo.4` (Ulmo line) or `release/verawood.1` (Verawood line), per the sources.","status":"open","published_at":"2026-11-04T23:17:59+00:00","first_seen_at":"2026-11-05T00:31:00+00:00","triaged_at":"2026-11-05T00:31:59+00:00","updated_at":"2026-11-05T00:31:59+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-05T00:31:59Z","model":"claude-haiku-5-5","output":{"fix":"- Move to `release/ulmo.4` (Ulmo line) or `release/verawood.1` (Verawood line), per the sources.","reach":"internet","title":"Open edX: any logged-in learner can probe account existence and staff roles","impact":"low","summary":"The Open edX course platform exposes a support endpoint that only checks that a caller is logged in, not that they hold the support role. Any authenticated learner can tell whether an arbitrary email, username or user ID belongs to an active account, and course or organization instructors can see the staff and instructor assignments of the target user.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["open-edx","self-hosted","learning-platform"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Attackers learn which accounts exist and instructors see staff assignments","analyst_note":"","how_to_check":"- Check the installed Open edX release: versions from the Ulmo line before `release/ulmo.4` or the Verawood line before `release/verawood.1` are affected.\n- Look for the endpoint `/api/support/v1/manage_course_team/` in the platform code (`CourseTeamManageAPIView`) and confirm whether it checks the global support role.","plain_action":"","needs_analyst":false,"not_affected_if":["anonymous-only-access","managed-hosting-patched","already-on-fixed-release"],"who_is_affected":"Organizations running self-hosted Open edX from the Ulmo release up to release/ulmo.4, or the Verawood line before release/verawood.1, where any enrolled learner has an account. Anonymous callers are blocked, and the PUT behaviour is outside this flaw. Hosted Open edX providers patch on their own schedule, so ask the provider whether the fixed release is deployed.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000778,"input_tokens":4478,"output_tokens":660,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':16A,19A '-97702':17A,20A '/api/support/v1/manage_course_team':114C '200':155C '404':157C 'absent':167C 'account':10A,73B,164C,170C 'activ':72B,163C 'addit':185C 'anonym':203C 'arbitrari':63B,150C 'assign':85B,194C 'authent':57B,138C 'author':95C,128C,210C 'behavior':212C 'belong':69B 'block':206C 'caller':45B,172C,197C,204C 'check':42B,129C 'cours':34B,75B,176C,199C 'course-level':175C 'courseteammanageapiview':117C 'cve':15A,18A 'deliveri':97C 'desk':135C 'discrep':159C 'distinguish':161C 'edx':2A,26B,33B,91C 'email':64B,143C 'enabl':93C 'endpoint':39B,115C 'exist':11A 'expos':36B 'fix':220C 'get':113C 'global':124C 'help':134C 'help-desk':133C 'hold':52B 'host':30B 'id':68B,147C 'inact':169C 'instructor':78B,84B,182C,193C 'intend':130C 'isauthent':120C 'issu':218C 'learn':22B,100C 'learner':7A,58B,139C 'learning-platform':21B 'level':177C,181C 'log':5A,47B 'logged-in':4A 'obtain':186C 'omit':122C 'onlin':99C 'open':1A,25B,32B,90C 'open-edx':24B 'organ':77B,180C,201C 'organization-level':179C 'outsid':214C 'platform':23B,35B,92C 'probe':9A 'put':211C 'releas':107C 'release/ulmo.4':109C,222C 'release/verawood.1':111C,224C 'remain':205C 'requir':118C 'respons':158C 'role':14A,55B,127C,183C 'runtim':27B 'scale':103C 'scope':202C 'see':80B 'self':29B 'self-host':28B 'separ':209C 'staff':13A,82B,191C 'suppli':141C 'support':38B,54B,126C 'support-rol':125C 'surfac':136C 'target':88B,151C,188C 'tell':60B 'ulmo':106C 'use':153C 'user':67B,89B,146C,189C 'usernam':65B,144C 'vulner':216C 'whether':61B 'within':195C","nicknames":[],"mitigations":[],"who_affected":"Organizations running self-hosted Open edX from the Ulmo release up to release/ulmo.4, or the Verawood line before release/verawood.1, where any enrolled learner has an account. Anonymous callers are blocked, and the PUT behaviour is outside this flaw. Hosted Open edX providers patch on their own schedule, so ask the provider whether the fixed release is deployed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["learningplatform","medium","openedx","runtime","selfhosted"],"campaign_type":null,"first_public_at":"2026-07-29T14:03:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-97702","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-97702","severity":null,"published_at":"2026-11-04T23:17:59+00:00","modified_at":"2026-11-04T23:17:59+00:00","first_seen_at":"2026-11-05T00:31:00+00:00","fetched_at":"2026-11-05T00:31:00+00:00","note":null}],"documents":[{"id":71504,"url":"https://github.com/openedx/openedx-platform/commit/46c543590c78aa1bfa846d47a4f1c5c6ec388490","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":71505,"url":"https://github.com/openedx/openedx-platform/commit/e2a1215f8d5da5170ddbf10316c2362e965e17bc","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":71506,"url":"https://github.com/openedx/openedx-platform/releases/tag/release/ulmo.4","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":71507,"url":"https://github.com/openedx/openedx-platform/releases/tag/release/verawood.1","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":71508,"url":"https://github.com/openedx/openedx-platform/security/advisories/GHSA-95xv-3c54-c3pw","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-29T14:03:08+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}