Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish malicious repo with crafted .moai-tmp symlink
-
ExploitVictim clones and runs moai init deployer
-
ExecutionatomicWriteFile follows symlink to external path
-
ImpactTruncate and overwrite victim-writable files outside project
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
|
| Exploitation Conditions | Exploitation requires the victim to run the MoAI-ADK init template deployer (moai init) inside or against a repository the attacker controls, where the attacker has committed a symlink whose name matches the deployer's staging suffix (e.g., .claude/settings.json.moai-tmp) and which points to a file outside the project. Limiting factors: the attack is local (AV:L) and needs user interaction (UI:P) - the victim must clone/trust and execute the tool on the malicious repository; impact is bounded to files the victim user can already write (victim-writable targets, VI:L/VA:L); and it is confined to MoAI-ADK versions through 3.1.2. No authentication to the tool is required, but no remote or default-configuration network exploitation is possible. |
| Impact | This is a medium-severity, low-urgency issue rather than a top priority. The CVSS 4.0 base score of 4.8 is consistent with the vector: AV:L plus UI:P means exploitation is not remote or automatic - a victim must obtain an attacker-controlled repository and actively run the MoAI-ADK template deployer (moai init) against it, which sharply limits mass or opportunistic exploitation and pushes this toward a targeted, supply-chain / social-engineering style attack. Impact is partial (VI:L/VA:L) and limited to files the victim can already write; VC:N confirms no confidentiality loss. No EPSS score is provided, the CVE is NOT in CISA KEV, and no public exploit code was identified - only a technical write-up (hackmd) and vendor source-code references exist, so this reflects disclosure/analysis maturity, not demonstrated in-the-wild use. SIGNAL CONFLICT: the input tag 'Information Disclosure' contradicts the CVSS vector, which shows VC:N (no confidentiality impact) and only integrity/availability impact - this is a file-overwrite/integrity flaw, not disclosure; treat the tag as mislabeled. Overall, a real but niche risk requiring attacker-controlled input plus victim action. |
| Exploit ScenarioDerived | An attacker publishes a malicious Git repository containing a crafted symlink (e.g., .claude/settings.json.moai-tmp) that points to a sensitive file outside the project tree. A developer clones the repository and runs the MoAI-ADK init template deployer, whose atomicWriteFile follows the symlinked staging path and truncates/overwrites the victim-writable target file with MoAI template content. No public exploit code was identified; the mechanism is documented in a hackmd technical write-up and the vendor's deployer.go source. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Improper link resolution in the MoAI-ADK moai init template deployer (all versions through 3.1.2) lets a malicious repository redirect the tool's atomic file write so that it truncates and overwrites files outside the project directory. The deployer stages template content at a path formed by appending a .moai-tmp suffix to the destination and does not verify that this staging path is a regular file rather than a symlink, so an attacker who commits a path such as .claude/settings.json.moai-tmp pointing elsewhere on disk can cause the write to follow the link when a developer runs moai init against the repository. Exploitation is local and requires the victim to clone, trust, and execute the deployer on attacker-controlled content (CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P, assessed as CVSS:3.1/AV:L/AC:L/PR:N/UI:R); no authentication to the tool is required, impact is bounded to files the victim user can already write, and no public exploit code was identified at time of analysis.
RemediationAI
No vendor-released fixed version is identified in the available intelligence, so the primary action is to confirm whether a release after 3.1.2 addresses the staging-symlink handling in internal/template/deployer.go before continuing to run moai init, and to track the project at https://github.com/modu-ai/moai-adk for a patched tag. Until a fix is confirmed, the most direct mitigation is to never run the moai init template deployer against repositories that are not fully trusted; where untrusted repositories must be processed, first audit the working tree for symlinks whose names end in the project's .moai-tmp staging suffix (for example .claude/settings.json.moai-tmp) and refuse to proceed if any are present, since legitimate template files are regular files rather than links. A second practical control is to clone untrusted repositories with symlink checkout disabled (git clone -c core.symlinks=false <repo> or git config core.symlinks false before checkout), which causes Git to write the link target as a plain file instead of a symlink and neutralizes the redirect - at the cost of breaking any legitimate symlinks the repository relies on, which can cause unrelated build or tooling failures. Running the deployer inside a container or sandbox with sensitive host paths (SSH keys, cloud credentials, shell profiles, editor settings) bind-mounted read-only, and under a low-privilege account, bounds the blast radius to files that account can already write, though it does not prevent the overwrite itself and may interfere with workflows that expect host-level configuration access. The technical write-up at https://hackmd.io/@haind/moai-adk-template-staging-symlink-overwrite documents the staging-path mechanism, and the source references at https://github.com/modu-ai/moai-adk/blob/4b2f203feda9c2cb6d7771969f4ec966842c8732/internal/template/deployer.go#L19-L32 and https://github.com/modu-ai/moai-adk/blob/4b2f203feda9c2cb6d7771969f4ec966842c8732/internal/template/deployer.go#L160-L203 identify the vulnerable code that any fix should harden.
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 issue is a classic CWE-59 improper-link-resolution-before-file-access flaw arising in MoAI-ADK's template deployment code, specifically the atomic write routine in internal/template/deployer.go (referenced lines L19-L32 define the staging/atomic-write handling and L160-L203 implement the write path). The deployer writes template content to a temporary staging path derived from the destination by appending the project's .moai-tmp suffix, then renames it into place; because the staged path is opened for truncation/write without first confirming via lstat/O_NOFOLLOW semantics that it is not a symlink, a symlink planted at that staging path is followed and the write lands on the symlink's target instead. The affected component is the Go-based MoAI-ADK tooling from vendor modu-ai (CPE cpe:2.3:a:modu-ai:moai-adk:*), and the attacker-controlled surface is any repository the victim runs the deployer against, since committed symlinks are faithfully recreated by git clone on standard configurations. Impact is integrity/availability-limited (VI:L/VA:L, VC:N) because the overwrite is confined to files writable by the invoking user; no confidentiality or scope change is assessed.
Know when Moai Adk 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:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Attack is local via running the deployer on an attacker-supplied repo (AV:L) and requires victim action (UI:R); no auth to the tool (PR:N); file overwrite yields partial integrity/availability impact and no confidentiality (C:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
MoAI-ADK through 3.1.2 contains an improper link resolution vulnerability in the moai init template deployer that allows malicious repositories to overwrite files outside the project via a symlinked .moai-tmp staging path. Attackers can commit a symlink such as .claude/settings.json.moai-tmp so atomicWriteFile truncates and overwrites victim-writable files with MoAI template content.
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.
EUVD-2026-96916
GHSA-c39q-75j3-4qgf
NVD
CVE.org
EPSS
Exploit-DB