CVE-2026-85272: Open edX Platform: Path traversal via prefix-bypass in safe_extractall Path Validation
Open edX Platform enables the authoring and delivery of online learning at any scale. From Aspen.1 until Ulmo and Verawood.1, openedx/core/lib/extractarchive.py uses isbadpath to validate safeextractall targets by comparing resolved path strings with startswith instead of comparing path components. A course author or staff user with course import permission can submit a crafted .tar.gz archive through the importolx flow initiated by cms.djangoapps.contentstore.views.importexport.importhandler. An archive member can therefore escape into a sibling course staging directory whose name shares the attacker's base64 directory prefix, causing limited cross-tenant file corruption. Zip archives are not practically affected because ZipFile.extractall strips parent traversal segments, and the advisory does not establish arbitrary filesystem writes, file reads, or direct code execution. This issue is fixed in Ulmo and Verawood.1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
openedx/core/lib/extract_archive.py safe_extractall path validationto a version that resolves this vulnerability.Fixed in Ulmo and Verawood.1
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker must be a course author or staff user with permission to import course content. The vulnerable path is the OLX import flow, so unauthenticated users are not described as able to trigger it.
What archive types and impact are involved?
The issue requires a crafted .tar.gz archive. It can write outside the intended staging directory into a sibling course staging directory with a matching base64-directory prefix, causing limited cross-tenant file corruption; arbitrary filesystem writes, file reads, and direct code execution are not established.
Are ZIP-based course imports affected?
ZIP archives are not practically affected because ZipFile.extractall strips parent-traversal segments. The described prefix-bypass condition applies to tar.gz extraction.
What should be done if an affected deployment cannot be updated immediately?
Restrict course import permission to trusted course authors and staff, and avoid accepting or importing untrusted .tar.gz OLX archives. This reduces access to the vulnerable import path while an update is planned.
Which releases are fixed?
The issue is fixed in Ulmo and Verawood.1. The affected range is from Aspen.1 until those fixed releases.