Skip to main content

Sapling SCM EUVDEUVD-2026-91648

| CVE-2026-104026 HIGH
Improper Neutralization of Escape, Meta, or Control Sequences (CWE-150)
2026-10-02 Meta GHSA-g4x4-gm4c-5r8h
7.8
CVSS 3.1 · Vendor: Meta
View

Attack ChainAIDerived

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

  1. Access
    Craft repo with control chars in subtree URL
  2. Delivery
    Lure victim to clone repository
  3. Exploit
    Victim runs sl log/blame/annotate
  4. Execution
    Control sequence interpreted
  5. Impact
    Arbitrary code execution in user context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Escape character neutralization
Exploitation Conditions

Exploitation requires the victim to clone a maliciously crafted Git repository whose Git subtree URL contains embedded control characters, and then to run an otherwise read-only Sapling command (sl log, sl blame, or sl annotate) against it. Limiting factors: the vector is local (AV:L) and depends on user interaction (UI:R) - the attacker cannot reach the victim remotely and must socially engineer the clone of an untrusted repository; it affects only Sapling SCM versions before v0.2.20260929-102736, so patched installations are not vulnerable; and exploitation is not automatable (SSVC Automatable=no) because each target must individually obtain and operate on the hostile repo.

Impact

This is a genuine high-impact code-execution flaw but NOT a drop-everything emergency, and the signals are internally consistent rather than conflicting. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H, 7.8 HIGH) correctly models the real attack: the vector is LOCAL (AV:L) and gated on user interaction (UI:R) because a victim must first clone and then operate on a maliciously crafted repository - it is not a remotely reachable network service bug. CVSS PR:N indicates no authentication is needed on the victim's side, which is accurate since any developer running sl log/blame/annotate is enough. SSVC reinforces a measured priority: Exploitation=none (no observed in-the-wild activity), Automatable=no (each victim must be socially engineered into cloning a specific hostile repo), but Technical Impact=total (full code execution). No EPSS score and no KEV listing were provided, and SSVC Exploitation=none aligns with that absence. There is no POC indicator in the input. Net: a real priority for organizations that actually use Sapling SCM and pull untrusted repositories, but the local vector, required user interaction, and non-automatable nature keep it well below worm-grade/network-RCE urgency.

Exploit ScenarioDerived

An attacker publishes a malicious Git repository containing a subtree URL with embedded control characters and lures a developer into cloning it (e.g., via a pull request, a shared fork, or a seemingly benign open-source project). When the victim later runs an ordinarily safe read-only command such as sl log, sl blame, or sl annotate, the control sequence is interpreted and attacker-chosen code executes in the developer's context. No public exploit was identified in the provided data, and exploitation requires the local user interaction reflected in the CVSS UI:R/AV:L metrics.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 02, 2026

Code execution in Sapling SCM versions prior to v0.2.20260929-102736 can be triggered by cloning a maliciously crafted Git repository whose subtree URLs contain embedded control characters; simply running an otherwise read-only command such as 'sl log', 'sl blame', or 'sl annotate' against that clone is enough to execute attacker-controlled code. Exploitation is not remote or automatic: the CVSS vector (AV:L/PR:N/UI:R) requires the victim to clone an untrusted repository and then invoke one of the affected commands, so an attacker must first socially engineer the clone. At time of analysis there is no public exploit identified, CISA SSVC records Exploitation as 'none', the issue is not in CISA KEV, and no EPSS signal was provided; nonetheless the potential technical impact is total (confidentiality, integrity, and availability all High), so patched installations (v0.2.20260929-102736 and later) should be treated as the only safe configuration.

RemediationAI

Upgrade Sapling SCM to v0.2.20260929-102736 or later - this is the vendor-released patch for CVE-2026-104026 and the only complete fix, since it stops control characters from being accepted in Git subtree URLs. If immediate upgrade is not possible, the practical compensating controls are: (1) do not clone or operate on Git repositories from untrusted or unverified sources using an unpatched Sapling build, accepting that this curbs normal workflow for any code review or third-party repository use; (2) inspect the subtree/.gitmodules configuration of any repository before running Sapling commands against it, looking for non-printable or escape bytes in URL values, and treat any such repository as hostile - this is a manual, error-prone check and does not scale; and (3) restrict use of the affected read-only commands (sl log, sl blame, sl annotate) on unpatched clients to repositories already vetted by the organization, noting this reduces but does not eliminate exposure because other repository operations may also process the same metadata. Patching removes the need for all of these workarounds. Consult the vendor advisory at https://www.facebook.com/security/advisories/cve-2026-104026 for the official fix guidance, and the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-104026 for the tracking record.

Affected VersionsENISA

Sapling SCM v0.0.0 <v0.2.20260929-102736

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

The root cause class is CWE-150, improper neutralization of escape, meta, or control sequences. Sapling SCM - Meta's source control client that is compatible with Git repositories - parses repository metadata including Git subtree URLs (the .gitmodules-style subtree definitions that map remote repositories into a local tree). Prior to v0.2.20260929-102736, those URL values were accepted without filtering control characters, so a hostile repository can embed non-printing byte sequences that are passed through unchecked when Sapling resolves and operates on the subtree. Because the affected operations (log, blame, annotate) are read-only and therefore low-suspicion from a user's perspective, the injected sequences are processed in a context where they can be interpreted as commands or terminal control rather than as inert URL text, escalating the flaw from a parsing/encoding defect to code execution. The affected artifact is identified by CPE cpe:2.3:a:meta_platforms,_inc:sapling_scm:*:*:*:*:*:*:*:*, and the vector is local with user interaction (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), meaning the adversary does not need credentials or network reach into the target but does need the target to obtain and operate on the crafted repository.

Know when Sapling Scm 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 (Meta) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Local vector because exploitation needs a cloned repo processed by local commands; UI:R for the clone/command action; PR:N as no victim auth is needed; code execution yields C/I/A:H.

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

Primary rating from Vendor (Meta).

CVSS VectorVendor: Meta

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

Lifecycle Timeline

2
CVE Published
Oct 02, 2026 - 14:06 cve.org
UNKNOWN (no severity yet)
CVE Published
Oct 02, 2026 - 14:06 cve.org
HIGH 7.8

DescriptionCVE.org

In Sapling SCM prior to v0.2.20260929-102736, control characters were allowed to be embedded in Git subtree URLs. A maliciously constructed repository, if cloned by a target, could trigger code execution on otherwise read-only actions such as sl log/blame/annotate.

Executive ViewAI

Why It Matters

Sapling SCM users who clone untrusted repositories and run common read-only commands risk total loss of confidentiality, integrity, and availability on their workstations, potentially exposing proprietary source code and credentials. Although exploitation requires user interaction and no public exploit identified at time of analysis, the high severity and availability of a fixed version mean leadership should prioritize rapid upgrade to prevent a single social engineering success from compromising developer environments.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
Niche developer source-control tool, limited adoption outside Meta and enthusiasts
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 HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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