openclaw-memoria@3.35.0
CAUTION· install onlyPublisher claims: "Local-first, multi-agent persistent memory for AI assistants. Use it to install, operate, connect, diagnose, or update Memoria on macOS." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-11 and scored it 68/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Direct script execution from GitHub raw URL; Prompting user to enter sensitive credentials; Privileged sudo command. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
reason = `clé API absente — place-la dans ~/.${provider}/api_key (chmod 600)`Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* (chmod 600) — l'action « Réutiliser ma config OpenClaw » de l'onboarding.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.// (chmod 600). La valeur n'est JAMAIS loggée ni renvoyée.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* clé machine auto-générée `<secretsDir>/vault.key` (chmod 600).Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* ~/.<provider>/api_key chmod 600, jamais renvoyée). Providers cloud uniquement. */Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.<pre className="command">curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | sh</pre>Fix: Pin versions and sources; vendor anything fetched at install time.'settings.engine.keyPlaceholderPaste': 'Paste your API key here…',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.command -v git >/dev/null 2>&1 || err "git manquant. Installe-le (ex. sudo apt install git) puis relance ce script."Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.// ~/.<provider>/api_key (chmod 600). La valeur n'apparaît JAMAIS ici.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.# curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Pin versions and sources; vendor anything fetched at install time.<pre className="command">curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | sh</pre>Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.it('copie la clé vers le fichier cible en chmod 600 (sans la logger)', () => {Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.env: { HOME: home, PATH: path, ...env },Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.it('round-trip + chmod 600', () => {Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.it('1 clic : pairing en processus + credentials chmod 600 + enregistrement MCP', async () => {Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* (chmod 600) sans jamais logger la valeur.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.// completePairing), credentials chmod 600, puis enregistrement MCPFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* publication → `npx -y @memoria/mcp`.Fix: Pin versions and sources; vendor anything fetched at install time.// credentials écrits, chmod 600, token VALIDE (utilisable sur /v1/memory/*)Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* - `daemon.json` (chmod 600) : { daemon_id, port, admin_token, pid, started_at }.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts./** Fichier écrit (chmod 600). */Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* (chmod 600). Permet de coller sa clé depuis l'UI sans toucher au terminal.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* Le token d'instance est un secret local : fichier chmod 600, dossier chmod 700.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* - POST /v1/admin/agents_connect : pairing EN PROCESSUS + credentials chmod 600 +Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Pin versions and sources; vendor anything fetched at install time.const access = 'AKIAIOSFODNN7EXAMPLE'Fix: Never read or enumerate credential locations; accept a documented environment variable instead.# curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* - Bearer <admin_token> (daemon.json chmod 600) : /v1/admin/* — réservé àFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.expect(slugifyFile('../../etc/passwd')).toBe('etc-passwd')Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const v1 = 'ghp_abcdefghij1234567890ABCDEFGHIJ123456'Fix: Never read or enumerate credential locations; accept a documented environment variable instead.curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.//! 3. lire `<storage_root>/daemon.json` (port + admin_token, chmod 600) ;Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.` Token : ${credentialsPath} (chmod 600)`,Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'La clé API Anthropic est stockée dans le fichier api_key avec chmod 600',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.* Tests @memoria/mcp : credentials (round-trip + chmod 600), auto-détectionFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.out.write(' 2. npx @memoria/web — ouvrir l’interface web\n')Fix: Pin versions and sources; vendor anything fetched at install time.// le token du hub est stocké au join (settings, chmod du registry) ; à défaut, en-tête vide → 401 clairFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.command: `npx -y @memoria/mcp connect --code ${code}`,Fix: Pin versions and sources; vendor anything fetched at install time.// Tant que @memoria/mcp n'est pas publié sur npm, la commande npx neFix: Pin versions and sources; vendor anything fetched at install time.// Détection de formatFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.`stop : le daemon (pid ${state.pid}) ne s’est pas arrêté après SIGTERM (5 s) — en dernier recours : kill -9 ${state.pid}`,Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.'settings.engine.missing.key': 'Clé absente — place-la dans ~/.{provider}/api_key (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.…note': 'Les clés API peuvent être saisies dans l\'UI ou lues depuis un fichier (chmod 600) ; elles ne sont jamais loggées. Une clé déjà présente dans OpenClaw peut êt…Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'docs.engine.providers.note': 'Las claves API pueden introducirse en la UI o leerse desde un archivo (chmod 600); nunca se registran. Una clave ya presente en OpenClaw puede reutilizarse.',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'onboarding.apikey.note': 'Memoria will never ask you to paste your key here — it stays in a protected file (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'docs.engine.providers.note': 'API keys can be entered in the UI or read from a file (chmod 600); they are never logged. A key already present in OpenClaw can be reused.',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'settings.engine.missing.key': 'Clave ausente — colócala en ~/.{provider}/api_key (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'onboarding.apikey.note': 'Memoria nunca te pedirá que pegues tu clave aquí — permanece en un archivo protegido (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.chmod +x "$BIN_DIR/memoria"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'onboarding.apikey.note': 'Memoria ne te demandera jamais de coller ta clé ici — elle reste dans un fichier protégé (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'settings.engine.missing.key': 'Schlüssel fehlt — lege ihn in ~/.{provider}/api_key ab (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.Page de lancement Memoria (app bureau). Affiche la séquence Node → daemon → UI, puis bascule la webview sur l'UI servie par le daemon (même origine que son API Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.# curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | shFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.command: 'npx -y @memoria/mcp connect --code ABC123',Fix: Pin versions and sources; vendor anything fetched at install time.'onboarding.apikey.note': 'O Memoria nunca te pedirá para colar a tua chave aqui — ela fica num ficheiro protegido (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'onboarding.apikey.note': 'Memoria wird dich nie bitten, deinen Schlüssel hier einzufügen — er bleibt in einer geschützten Datei (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts./** Copie la clé API trouvée chez OpenClaw vers ~/.<provider>/api_key (chmod 600). */Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'docs.engine.providers.note': 'As chaves API podem ser introduzidas na UI ou lidas a partir de um ficheiro (chmod 600); nunca são registadas. Uma chave já presente no OpenClaw pode ser reutilizada.',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'settings.engine.missing.key': 'Chave ausente — coloca-a em ~/.{provider}/api_key (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.'settings.engine.missing.key': 'Key missing — put it in ~/.{provider}/api_key (chmod 600).',Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.…'API-Schlüssel können in der UI eingegeben oder aus einer Datei gelesen werden (chmod 600); sie werden nie geloggt. Ein bereits in OpenClaw vorhandener Schlüssel kann…Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.const command = `echo 'TA_CLÉ' > ~/.${provider}/api_key && chmod 600 ~/.${provider}/api_key`Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.<pre className="command">curl -fsSL https://raw.githubusercontent.com/Primo-Studio/openclaw-memoria/memoria-v1/scripts/install-memoria.sh | sh</pre>Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
12 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Prompting user to enter sensitive credentials≈ +9 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Unclaimed publisher≈ +8 on the totalClaim nieto42: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Direct script execution from GitHub raw URL≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Pipe-to-shell pattern≈ +4 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.