Cyber Resilience

CVE-2026-25057

Path Traversal in Markusproject Markus ≤ 2.9.1

Published
09 February 2026
Modified
19 February 2026
Patch / advisory
CVSS Score v3.1 9.1
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
EPSS Score 0.0047 38th percentile
Risk Priority 59 floored blend · peak EPSS

Summary

CVE-2026-25057 is a critical-severity Relative Path Traversal (CWE-23) vulnerability in Markusproject Markus. Its CVSS base score is 9.1 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 38th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to SI-10 (Information Input Validation) and AC-3 (Access Enforcement) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-25057 is a path traversal vulnerability (CWE-23) affecting MarkUs, an open-source web application used for the submission and grading of student assignments. In versions prior to 2.9.1, the feature allowing instructors to upload a ZIP file for creating an assignment from an exported configuration—accessible via the endpoint courses/<:course_id>/assignments/upload_config_files—fails to validate the entry names within the ZIP archive. These unchecked entry names are directly used to construct file paths for writing to the server's disk, enabling attackers to write files to arbitrary locations.

An authenticated instructor (PR:H per CVSS v3.1) with network access (AV:N) can exploit this vulnerability with low complexity (AC:L) and no user interaction (UI:N). Successful exploitation grants high-impact scope change (S:C), allowing full compromise of confidentiality (C:H), integrity (I:H), and availability (A:H) on the affected system, such as overwriting critical files or planting malicious code outside the intended directory.

The vulnerability is addressed in MarkUs version 2.9.1, as detailed in the project's GitHub security advisory (GHSA-mccg-p332-252h), release notes, and the fixing commit (0ca002a1f0071c7a00dbb2ed34fede57323c5dc7). Security practitioners should upgrade to 2.9.1 or later and review access controls for instructor roles to mitigate risks from privileged users.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

MarkUs is a web application for the submission and grading of student assignments. Prior to 2.9.1, instructors are able to upload a zip file to create an assignment from an exported configuration (courses/<:course_id>/assignments/upload_config_files). The uploaded zip file entry names are…

more

used to create paths to write files to disk without checking these paths. This vulnerability is fixed in 2.9.1.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1005 Data from Local System Collection
Adversaries may search local system sources, such as file systems, configuration files, local databases, virtual machine files, or process memory, to find files of interest and sensitive data prior to Exfiltration.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-24900Same product: Markusproject Markus
CVE-2024-47820Same product: Markusproject Markus
CVE-2024-51743Same product: Markusproject Markus
CVE-2024-51499Same product: Markusproject Markus
CVE-2026-28405Same product: Markusproject Markus
CVE-2026-25962Same product: Markusproject Markus
CVE-2026-27807Same product: Markusproject Markus
CVE-2024-20310Shared CWE-23
CVE-2025-11898Shared CWE-23
CVE-2026-57988Shared CWE-23

Affected Assets

markusproject
markus
≤ 2.9.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V5.3.2

Mitigating Controls (NIST 800-53 r5) AI

Explicit validation of path inputs stops .. sequences from ever being interpreted by the file system.

Access enforcement directly blocks unauthorized file reads/writes that result from unresolved .. sequences.

Information-flow rules can be configured to reject traversals that would move data outside an approved directory boundary.

Least privilege reduces the set of reachable files even when a traversal succeeds.

Secure-engineering principles require safe pathname construction and input neutralization before any file operation.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices directly require input validation and path sanitization that prevent relative traversal.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing in development catches path traversal via static/dynamic analysis, but does not itself implement the fix.

prevents

Secure development lifecycle mandates input validation and path-handling controls that directly prevent relative path traversal.

prevents

Application security requirements explicitly call for controls against path traversal and other injection flaws.

prevents

Secure architecture principles include directory isolation and canonicalization, reducing but not eliminating traversal risk.

prevents

Secure coding standards require neutralizing path traversal sequences, directly addressing CWE-23.

mitigates

Information access restriction limits which files can be reached, mitigating impact but not preventing the traversal flaw.

References