Skip to main content

Fallow CVE-2026-115569

| EUVDEUVD-2026-109119 LOW
Path Traversal (CWE-22)
2026-10-23 GitHub_M GHSA-jfwm-3p3c-6hx5
3.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Victim runs Fallow on attacker repo
  2. Delivery
    Malicious Jest/Vitest projects path supplied
  3. Exploit
    Path escapes project root
  4. Execution
    Outside file parsed as test config
  5. Impact
    Unused dependency/file findings altered

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 a user, CI job, or automated agent to run a vulnerable Fallow (2.68.0 through 3.33.1) on an untrusted/attacker-controlled repository (UI:R, AV:L - no remote or network trigger). The malicious repo must contain a Jest projects entry (all affected versions) or, from 3.33.1, a Vitest test.projects entry, a Vitest inline-project extends path, or a script --config symlink, where that path resolves outside the project root via an absolute path, .. segments, a .*-segment glob (the glob crate tests .. against literal-dot segments), or an in-root symlink to a parent directory. Limiting factors that reduce real risk: exploitation only occurs when Fallow is actually executed on the hostile repo; the outside file contents are never printed or sent over the network, so the attacker obtains only altered unused-dependency/unused-file findings, not the file data. The only complete fix per the advisory is updating to 3.34.0; the stated workaround is to run Fallow only on trusted repositories and to inspect projects entries of jest.config.*/vitest.config.* beforehand.

Impact

All decision signals point to low, non-urgent risk and they are broadly consistent. The input CVSS is 3.3 (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N) and the vuln.today Decision label is 'monitor'. There is no CISA KEV listing and no EPSS score was supplied, so there is no evidence of active or probable exploitation; status is 'no public exploit identified at time of analysis' (the four references are the GHSA advisory, PR #3556, the fix commit, and the release tag - patch/advisory material, not exploit code). The one notable tension is within the impact metrics: the CVSS vector assigns C:L (confidentiality), but the GHSA advisory explicitly states the outside file contents are neither printed nor sent over the network and that 'the attacker gets changed findings, not the file content.' On that evidence the real-world effect is on the integrity of Fallow's analysis output (unused-dependency and unused-file findings can be altered), not on confidentiality - so the C:L rating likely overstates data exposure while understating the integrity angle. Exploitation also depends on UI:R: a user, CI pipeline, or automated agent must actually run Fallow on an attacker-controlled repository. Net: a genuine but low-priority path-traversal/analysis-integrity issue, not an emergency; 'monitor' is the appropriate posture.

Exploit ScenarioDerived

An attacker publishes a crafted repository whose jest.config.* (or, from 3.33.1, vitest.config.*) contains a projects entry pointing outside the project root via an absolute path, '..' segments, a dot-prefixed wildcard glob, or an in-root symlink to a parent directory. When a victim runs a vulnerable Fallow (2.68.0-3.33.x) on that repo - typically in CI or via an automated agent analyzing a freshly cloned repository (AV:L, UI:R) - Fallow follows the path, reads the outside file, and parses it as a test-runner config, silently altering unused-dependency and unused-file findings. No public exploit code is identified, and the file contents are never disclosed to the attacker.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Fallow 2.68.0 through 3.33.1, when run on an untrusted repository, can be induced to read Jest projects entries (and, from 3.33.1, Vitest test.projects entries, Vitest inline-project extends paths, and symlinked script --config paths) that resolve outside the project root via absolute paths, .. segments, dot-prefixed wildcard globs, or in-root symlinks to parent directories. The outside files are parsed as test-runner configuration only to credit dependencies, setup files, and JSX import sources, so the attacker's payoff is altered unused-dependency and unused-file findings rather than disclosure of file contents - nothing is printed or sent over the network. Exploitation requires a user, CI job, or agent to execute Fallow against the hostile repository (AV:L, UI:R, unauthenticated per the CVSS vector), and no public exploit code was identified at time of analysis; priority signals are consistent with low, non-urgent risk and monitoring.

RemediationAI

Vendor-released patch: upgrade to Fallow 3.34.0 (npm fallow and @fallow-cli/fallow-node, Rust crates fallow-cli and fallow-core); the release is at https://github.com/fallow-rs/fallow/releases/tag/v3.34.0, with the fix in PR https://github.com/fallow-rs/fallow/pull/3556 and commit 75c0c60948a53ddfe042e65b446343989f4c5649, and the advisory at https://github.com/fallow-rs/fallow/security/advisories/GHSA-jfwm-3p3c-6hx5. After the fix, each glob match is canonicalized and read only when inside the project root, globs whose literal base is outside the root are not executed, and a --config symlink pointing outside the root is not read; in-root entries such as <rootDir>/../packages/* continue to work. Per the advisory the only complete fix is updating to 3.34.0; the stated workaround is to run Fallow only on repositories you trust, and, before running it on an unfamiliar repository, to inspect the projects entries of that repository's jest.config.* and vitest.config.* files (and from 3.33.1 also Vitest inline-project extends paths and script --config paths) for absolute paths, .. segments, dot-prefixed wildcard globs, or symlinks escaping the project root. Trade-off: trusting-only-repositories or manual config review slows analysis in CI and agent pipelines that consume third-party repos, and such review is error-prone without the patched containment check.

Affected VersionsENISA

fallow-cli 2.68.0, < 3.34.0
fallow-node 2.68.0, < 3.34.0
fallow 2.68.0, < 3.34.0
fallow-core 2.68.0, < 3.34.0

Affected Packages

cargo @fallow-cli/fallow-node fix: 3.34.0
cargo fallow fix: 3.34.0
cargo fallow-cli fix: 3.34.0
cargo fallow-core fix: 3.34.0
npm @fallow-cli/fallow-node fix: 3.34.0
npm fallow fix: 3.34.0
npm fallow-cli fix: 3.34.0
npm fallow-core fix: 3.34.0
euvd fallow fix: 3.34.0
euvd fallow_cli fix: 3.34.0
euvd fallow_core fix: 3.34.0
euvd fallow_node fix: 3.34.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 7 packages in cargo, npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-22 (path traversal), with the advisory additionally classifying it as CWE-59 (link following). Fallow is a codebase intelligence tool for TypeScript and JavaScript that, as part of analysis, reads the analyzed repository's Jest (jest.config.*) and Vitest (vitest.config.*) configuration to derive test entry patterns, setup files, JSX import sources and dependency credits. A projects entry (Jest) or test.projects entry (Vitest) names a path to another config; Fallow followed those entries without validating containment against the project root. Four bypass shapes worked: absolute paths or globs such as /etc/*; .. segments such as ../*; globs containing a .* segment, because the Rust glob crate also matches .. against a segment beginning with a literal dot; and an in-root symlink pointing above the project. Version 3.33.1 extended the same weakness to Vitest test.projects, Vitest inline-project extends paths, and a script --config argument that is a symlink to a file outside the root. The fix (PR #3556) adds two helpers: is_inside_root, which canonicalizes both the candidate path and the root (resolving .. and symlinks, and refusing non-existent paths) and checks starts_with, and glob_base_is_inside_root, a lexical pre-check on the literal portion of the pattern before the first glob metacharacter so patterns like ../** never walk above the project. The trigger conditions are documented in the advisory; the assessment records no confidentiality impact from the read itself, only integrity impact on analysis output.

Know when Fallow 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

Vendor (GitHub_M) PRIMARY 3.3 LOW
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
vuln.today AI 3.3 LOW

Local, attacker needs no privileges but a user must run Fallow on the crafted repo (AV:L/PR:N/UI:R); per the advisory contents are never disclosed, so C:N, and only analysis findings are altered, giving I:L.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 23, 2026 - 19:02 EUVD

DescriptionCVE.org

Fallow is a codebase intelligence tool for TypeScript and JavaScript. From 2.68.0 until 3.34.0, Fallow follows attacker-controlled Jest projects paths outside the project root through absolute paths, parent segments, dot-prefixed wildcard globs, or symlinks. In version 3.33.1, the same behavior also affects Vitest test.projects paths, Vitest inline-project extends paths, and symlinked script --config paths. Fallow parses the outside files as test-runner configuration and uses them to credit dependencies, setup files, and JSX import sources, which can change unused dependency and unused file findings in CI or agent analysis. The outside file contents are not printed or sent over the network. This issue is fixed in version 3.34.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche TypeScript/JavaScript codebase-intelligence CLI, limited deployment footprint
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Low

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy