Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocal access to SDK caller
-
ExploitSupply traversal sequence in options.path
-
ImpactRead/write/delete file outside catalog docs directory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the ability to pass an attacker-controlled path value - options.path for getCustomDoc/getCustomDocs, or the directory/file-name arguments for writeCustomDoc/rmCustomDoc - into the vulnerable functions in packages/sdk/src/custom-docs.ts. The pre-2.30.0 code joined these values directly to the catalog docs directory without containment, so '../' sequences, leading-slash/absolute paths, Windows drive-letter or UNC paths, null bytes, or symlinks escape that directory. Exploitation is LIMITED to local-host access (AV:L) by a caller that already has privileges to invoke the SDK (PR:L), which in typical use is a local build/documentation tooling context rather than a network-facing service; there is no remote or unauthenticated path from the available data. |
| Impact | This is a moderate-severity, low-urgency issue rather than a top priority. All impact signals point low: the sole CVSS vector supplied is CVSS:4.0 (base 4.8) with AV:L (local), AC:L, AT:N, PR:L (authenticated/privileged caller), UI:N, and only low confidentiality, integrity and availability impact (VC:L/VI:L/VA:L), with no scope change. There is no EPSS score in the input, this CVE is not on the CISA KEV list, and no public exploit code or working-PoC reference is present - only VulDB advisory pages and the vendor patch/PR/commit/release links. The vuln.today decision label is 'this_month', which is consistent with the low CVSS and absence of exploitation evidence - this is not an act_now or emergency item. The flaw is a genuine path traversal (CWE-22) confirmed by the vendor's own fix, but the local attack vector and the fact that the affected code is a developer SDK (not a network-exposed service) sharply limit real-world risk. No signals conflict; the picture is uniformly low. The only mild caveat is that path traversal enabling writes and deletes outside the docs directory could, in some callers, have higher integrity/availability consequences than the vendor's uniform 'low' rating suggests, but the evidence does not establish a higher impact. |
| Exploit ScenarioDerived | An actor who can supply the options.path (or directory/file name) argument to the EventCatalog SDK's getCustomDoc/writeCustomDoc/rmCustomDoc functions on the local host passes a traversal sequence (e.g. '../', an absolute path, a drive-letter/UNC path, or a path through a symlink) so the read, write, or delete lands outside the intended catalog docs directory. No public exploit code is identified; exploitation requires local access and control of the path argument, consistent with the AV:L/PR:L vector. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 25, 2026
Path traversal in the EventCatalog (@eventcatalog/sdk) custom-documentation helpers, fixed in 2.30.0, lets a caller that already has local access to the SDK escape the catalog docs directory when reading, writing, or deleting custom docs. The vulnerable functions getCustomDoc, getCustomDocs, writeCustomDoc and rmCustomDoc joined attacker-supplied path values directly onto the docs directory, so '../' sequences, absolute or leading-slash paths, Windows drive-letter or UNC paths, null bytes, or symlinks could redirect file operations outside the catalog. Exploitation is limited to local-host callers who can already invoke the SDK - typically local build or documentation tooling rather than a network service - with low confidentiality, integrity and availability impact; no public exploit code was identified at time of analysis and the issue is rated moderate with low urgency.
RemediationAI
Vendor-released patch: upgrade @eventcatalog/sdk to version 2.30.0 (release tag @eventcatalog/sdk@2.30.0), which contains the path-containment changes from PR #2936 / commit a4f072a03f440d58230092e88d8b4893f4c6d6ca and keeps custom doc reads, writes and deletes inside the catalog docs directory; see https://github.com/event-catalog/eventcatalog/pull/2936 and https://github.com/event-catalog/eventcatalog/releases/tag/%40eventcatalog%2Fsdk%402.30.0 for details. VulDB lists the issue at https://vuldb.com/vuln/426122. Until the upgrade is applied, the exposure is limited to local callers that invoke the SDK with untrusted path input, so ensure the tooling that supplies options.path, directories and file names for these helpers does not accept untrusted values, though the patch is the complete fix for the underlying path validation gap.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The EventCatalog SDK is a Node.js/TypeScript library (packages/sdk/src/custom-docs.ts) whose custom-documentation helpers read, write and remove .mdx files under a catalog docs directory. Pre-fix code used raw path.join(directory, filePath) and built glob patterns such as ${directory}/${options.path}/**/*.{md,mdx} without validating that the resolved location stayed inside that root, a classic CWE-22 path traversal. The upstream fix (PR #2936, commit a4f072a0) adds containment logic: toRelativeCatalogSegment rejects null bytes, drive-letter paths and UNC paths and normalizes backslashes and leading slashes; resolveCustomDocFile and resolveCustomDocWritePath resolve the candidate and assert it lies under the docs root; assertInsideDocsRoot additionally compares real paths via a custom resolveRealPath that uses lstat and readlink to detect symlinks even when the target does not exist (so dangling symlinks cannot be followed to create or delete external files). The trigger is a caller passing an attacker-controlled path value - options.path for getCustomDoc/getCustomDocs (and the directory and file-name arguments for writeCustomDoc/rmCustomDoc) - which in practice means local build or documentation tooling that processes untrusted catalog content; the supplied evidence does not describe any network-reachable path to these functions.
Know when Sdk gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
SDK runs locally and the caller controls the path argument, so AV:L and PR:L; traversal enables reads, writes and deletes outside the docs directory, giving low C/I/A with no scope change.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A flaw has been found in eventcatalog sdk up to 2.29.0. This vulnerability affects the function getCustomDoc/writeCustomDoc/rmCustomDoc of the file packages/sdk/src/custom-docs.ts of the component Custom Documentation Helpers. This manipulation of the argument options.path causes path traversal. It is possible to launch the attack on the local host. Upgrading to version 2.30.0 is able to resolve this issue. Patch name: a4f072a03f440d58230092e88d8b4893f4c6d6ca. The affected component should be upgraded. The vendor was contacted early, responded in a very professional manner and quickly released a fixed version of the affected product.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
IBM SDK, Java Technology Edition is vulnerable XML External Entity Injection (XXE) error when processing XML data. Rated
The CLI in npm before 2.15.1 and 3.x before 3.8.3, as used in Node.js 0.10 before 0.10.44, 0.12 before 0.12.13, 4 before
Cross-Site Request Forgery (CSRF) in RedwoodSDK 1.0.0-beta.50 through 1.0.5 allows unauthenticated remote attackers to e
The IBM Java Runtime Environment's Diagnostic Tooling Framework for Java (DTFJ) (IBM SDK, Java Technology Edition 6.0 ,
Same-site Cross-Site Request Forgery (CSRF) in RedwoodSDK server actions allows attackers controlling same-site origins
EUVD-2026-109370
GHSA-wcv6-jfg6-vfc5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB