T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:197- Finding
Unrestricted Cross-Agent Collection and Indexing of Sensitive Memory
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly transparent about building a shared agent memory, but it recommends broad cross-workspace indexing, long-lived storage, optional auto-indexing, and external model processing without enough controls.
Install only if you are comfortable centralizing the selected agents' memory into a shared, persistent graph and potentially sending indexed text to an OpenAI-compatible provider. Use explicit file allowlists, skip profile/private/security/trading logs unless reviewed, disable the cron job by default, prefer local models for sensitive data, pin the container image to a reviewed digest, and define deletion and access-control procedures before indexing real data.
SKILL.md:197Unrestricted Cross-Agent Collection and Indexing of Sensitive Memory
SKILL.md:89Agent Memory May Be Transmitted to External Model Providers Without Data Controls
SKILL.md:72Mutable Latest Container Image Creates Supply-Chain Exposure
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
volumes: - ./data:/app/data env_file: - .env
Create `docker/lightrag/.env`:
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
cd docker/lightrag docker compose up -d
curl -s http://127.0.0.1:9621/health
## Step 2: Create Query/Insert Scripts
The README explicitly promotes cross-agent access to shared memory ('Any agent can query what other agents learned') but does not clearly warn users that data may be visible across agent boundaries, persisted, and potentially exposed to agents with different trust levels. In a multi-agent environment, this can lead to unintended disclosure of sensitive prompts, logs, secrets, or customer data if users assume agent memory remains isolated.
The README advertises that knowledge and relationships 'survive forever' without prominently explaining retention risks, deletion challenges, or the consequences of storing sensitive information long-term. Persistent retention increases blast radius because accidentally indexed secrets, personal data, or confidential operational details may remain discoverable indefinitely across agents and over time.
The description says to use the skill 'when agents need to share knowledge or when memory_search is not enough,' which is an open-ended invocation condition without clear boundaries. This is broad enough to overlap with many normal agent tasks and does not provide specific trigger phrases, exclusions, or negative examples.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Create docker/lightrag/docker-compose.yml:
services:
The configuration directs LightRAG to use https://api.openai.com/v1 for graph construction and queries. Given the skill's purpose is to ingest agent memories and shared knowledge, this means potentially sensitive internal content may be sent to an external provider, making the transmission materially risky in this context.
# LLM (for graph construction and queries)
LLM_BINDING=openai
LLM_MODEL=gpt-4.1-nano
LLM_BINDING_HOST=https://api.openai.com/v1
LLM_BINDING_API_KEY=sk-your-api-key
# Embeddings (for vector search)
The embedding configuration sends document content to an external embedding provider, which is especially risky because the skill recommends bulk indexing of memory files and agent metadata. Embedding pipelines often process the raw text, so secrets, personal data, or strategic internal information could leave the local environment.
EMBEDDING_BINDING=openai
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536
EMBEDDING_BINDING_HOST=https://api.openai.com/v1
EMBEDDING_BINDING_API_KEY=sk-your-api-key
# Performance
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
cd docker/lightrag docker compose up -d
curl -s http://127.0.0.1:9621/health
## Step 2: Create Query/Insert Scripts
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
KEY = "your-secure-api-key"
def query(text, mode="mix"):
r = requests.post(f"{API}/query",
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
json={"query": text, "mode": mode, "only_need_context": False},
timeout=30)
The insert script sends arbitrary text into the LightRAG service for indexing, and the overall setup explicitly uses external OpenAI-compatible LLM and embedding APIs for graph construction and retrieval. Because the skill encourages indexing logs and profile files across agents, this creates a realistic pathway for sensitive internal data to be centralized and transmitted to third parties.
KEY = "your-secure-api-key"
def insert(text, description="manual insert"):
r = requests.post(f"{API}/documents/text",
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
json={"text": text, "description": description},
timeout=120)
The skill instructs bulk ingestion of SOUL.md, USER.md, and agent memory logs from multiple workspaces into a shared knowledge graph, but the warning about sensitive data appears later and is easy to miss. In this context, the graph is also backed by OpenAI-compatible LLM/embedding services, so indexing logs can expose private cross-agent data and potentially transmit it to third-party providers.
The cron job creates ongoing automated ingestion of daily logs from multiple workspaces into the shared graph. That persistence increases blast radius: newly created sensitive entries will be exfiltrated or centrally exposed without human review, making accidental leakage much more likely over time.
Create a cron job to index new daily logs automatically:
#!/bin/bash
No suspicious patterns detected.