
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-35613 is a path traversal vulnerability in the coursevault-preview npm package, a utility for previewing course material files from a configured directory. Versions prior to 0.1.1 are affected. The vulnerability was published by the maintainer on April 5, 2026, disclosed to the NVD on April 7, 2026, and added to the GitHub Advisory Database on April 8, 2026. It carries a CVSS v3.1 base score of 4.7 (Medium) per NVD, or 5.1 (Moderate) per the GitHub Advisory (GitHub Advisory, Security Advisory).
The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory). The vulnerable code resides in src/utils/errors.ts, where the resolveSafe utility enforces a directory boundary using a raw string prefix check (String.prototype.startsWith(baseDir)) on a normalized path rather than a separator-aware comparison. This means that if baseDir is /srv/courses, a crafted path resolving to /srv/courses-admin/config.json passes the guard because the string /srv/courses-admin/config.json does indeed start with /srv/courses. The fix appends a path separator to the base directory before comparison: full.startsWith(base + sep), ensuring only paths within the actual directory are permitted (Security Advisory, GitHub Advisory).
Successful exploitation allows a local attacker to read arbitrary files outside the configured baseDir, limited to files accessible within the host process's filesystem permissions. The impact is confined to confidentiality — there is no integrity or availability impact, and no network exposure is introduced by the package itself. Sensitive files in sibling directories (e.g., configuration files containing credentials) could be disclosed if an attacker controls the relativePath argument passed to affected CoursevaultPreview methods (Security Advisory).
There is no confirmed in-the-wild exploitation or publicly available weaponized exploit code for this vulnerability. The GitHub Advisory analysis notes that the example payload (../courses-admin/config.json) is illustrative rather than a functional exploit. The EPSS score is approximately 0.014–0.018%, indicating a very low probability of exploitation in the near term. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (GitHub Advisory, Security Advisory).
coursevault-preview < 0.1.1 (npm) where user-controlled input is passed as the relativePath argument to CoursevaultPreview file-access methods.baseDir (e.g., baseDir = /srv/courses and sibling /srv/courses-admin).baseDir, produces an absolute path pointing to a file in the sibling directory — for example, ../courses-admin/config.json resolves to /srv/courses-admin/config.json./srv/courses-admin/config.json passes the flawed startsWith('/srv/courses') check, allowing the file read to proceed.baseDir, potentially exposing sensitive configuration data or credentials (Security Advisory).baseDir (e.g., files under /srv/courses-admin/ when baseDir is /srv/courses).baseDir; error logs that are notably absent where path traversal attempts succeed silently.coursevault-preview, particularly targeting configuration files (e.g., config.json, .env) in directories adjacent to the course content directory.Upgrade coursevault-preview to version 0.1.1 or later, which replaces the flawed startsWith(baseDir) check with a separator-aware comparison (startsWith(base + sep)). No configuration-based workaround is available; the only effective remediation is upgrading the package. Developers should also audit any application code that passes untrusted user input as the relativePath argument to CoursevaultPreview methods (GitHub Advisory, Security Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."