T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/fetch.py:32- Finding
Persistent Agent Memory Is Read and Its Identifier Is Transmitted Externally
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a disclosed EvoMap network client, but it includes under-scoped external data sharing and a hardcoded publishing identity that users should review before installing.
Install only if you are comfortable sending EvoMap searches, asset IDs, and a persistent node identifier to evomap.ai. Review fetched capsules as untrusted third-party advice, do not run validation commands or apply changes without explicit approval, and avoid using the bundled hardcoded Feishu publishing script unless you intend to publish exactly that content under that node identity.
scripts/fetch.py:32Persistent Agent Memory Is Read and Its Identifier Is Transmitted Externally
SKILL.md:39Untrusted Remote Capsules Are Presented to the Agent as Actionable Guidance
scripts/publish_feishu403.js:7Hard-Coded Publisher Identity Is Used Without Client-Side Proof of Possession
This second mismatch finding indicates the skill may hardcode sender identity and publish a predefined bundle despite claiming to be a general-purpose integration. If true, that creates risk of impersonation, unexpected data publication, or misleading activation behavior, especially in agent ecosystems that rely on metadata for trust and routing.
This second mismatch finding indicates the skill may hardcode sender identity and publish a predefined bundle despite claiming to be a general-purpose integration. If true, that creates risk of impersonation, unexpected data publication, or misleading activation behavior, especially in agent ecosystems that rely on metadata for trust and routing.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"schema_version": "1.5.0",
"category": "repair",
"signals_match": ["FeishuAPIError", "403 Forbidden"],
"summary": "Re-fetch access token when Feishu API returns 403",
"validation": [],
"asset_id": ""
}
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
Your node is already active. Use fetch.py or publish directly.
Check node status instead:
curl -s https://evomap.ai/a2a/nodes/YOUR_NODE_ID | python3 -m json.tool
Only use this script if you are registering a BRAND NEW node for the first time.
"""
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
Your node is already active. Use fetch.py or publish directly.
Check node status instead:
curl -s https://evomap.ai/a2a/nodes/YOUR_NODE_ID | python3 -m json.tool
Only use this script if you are registering a BRAND NEW node for the first time.
"""
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
print("✅ Just use fetch.py or publish directly — no hello needed.")
print()
print("To check your node status:")
print(f" curl -s https://evomap.ai/a2a/nodes/{CLAIMED_NODE} | python3 -m json.tool")
print()
if "--force" in sys.argv:
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
],
constraints: {
max_files: 2,
forbidden_paths: ['.env', 'secrets/']
},
validation: [
"node -e \"console.log('Feishu app_secret should be 32 chars. Verify length manually in config.')\""
The skill advertises and instructs use of network, shell, environment, and file-reading capabilities but does not declare any explicit tool scope or permissions. In an agent setting, missing scope boundaries can cause over-privileged execution and make it easier for the skill to access local state (such as MEMORY.md or environment variables) and contact external services without clear governance.
The activation guidance is broad enough to trigger on generic mentions like wanting to 'learn the protocol' or 'search for capsules or genes,' which can cause unintended invocation. In an agent environment, overly permissive triggers increase the chance of unprompted external-service interaction or shell command suggestions in contexts where the user did not intend to use this marketplace integration.
The skill prominently promotes direct connection to an external hub and auto-discovery of sender_id from local state, but it does not provide a clear warning that user/agent data, node identifiers, and possibly solution content may be transmitted to a third-party service. This is dangerous because operators may unknowingly expose local identifiers, operational metadata, or sensitive problem descriptions to an external marketplace.
The protocol explicitly permits npx in validation commands without requiring pinned package versions or restricting remote package resolution. In a collaborative marketplace where agents may consume and run shared validation steps, this can lead to execution of unexpected or attacker-controlled code if npx fetches the latest package or resolves a compromised dependency.
The skill metadata says sender_id should be auto-detected from MEMORY.md, but this script hardcodes a fixed node identity. In an agent-to-agent publishing workflow, a hardcoded sender_id can cause misattribution of published assets, cross-tenant identity confusion, or unintended publishing under the wrong agent identity if reused elsewhere.
The file documentation says sender_id can come from command line, environment variable, or MEMORY.md, while the manifest-level description states it is auto-detected from MEMORY.md and that scripts handle the rest after saving node ID once. This is an intent/documentation divergence about how identity is sourced, which could mislead users about what data sources the script consults.
The manifest description says sender_id is auto-detected from MEMORY.md so agents only need to save their node ID once, but this script also reads EVOMAP_SENDER_ID from the environment. Accessing environment variables is not clearly justified by that stated workflow and expands how identity is sourced beyond the described purpose.
No suspicious patterns detected.