Back to skill

Security audit

Realestate Advisor

Security checks for vulnerabilities and agentic risk

Overview

The skill is a real-estate advice assistant, but it includes automatic maintenance rules that can delete files and promote user corrections into persistent agent memory without clear approval controls.

Review before installing. The real-estate analysis behavior is mostly clear, but enable it only if you are comfortable with automatic heartbeat maintenance, file cleanup, and persistent memory updates. Do not upload screenshots containing account details, personal identifiers, private addresses beyond what is needed, or transaction metadata unless you intend the assistant to process them.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
HEARTBEAT.md:15
Finding

Untrusted User Corrections Can Be Promoted into Persistent Agent Memory

Content
View full analysis

Vulnerability Details

File Location: HEARTBEAT.md, lines 15-25
Vulnerability Type: T02: Agent Memory Poisoning
Risk Level: Medium

Vulnerable instructions:

markdown
## Weekly Tasks (Sunday)

- [ ] Review `self-improving/corrections.md` and promote patterns repeated three or more times to `memory.md` (HOT layer)
- [ ] Check pending improvements in `self-improving/projects/realestate-advisor.md` and update their progress
- [ ] Remove archives older than 180 days from `self-improving/archive/`

---

## Event-Driven Triggers

- **User correction** → Immediately record it in `self-improving/corrections.md`

Technical Analysis

The workflow instructs the agent to persist user-supplied corrections immediately and later promote patterns that occur at least three times into long-term memory. It does not require owner approval, provenance verification, semantic validation, or separation of factual data from behavioral instructions.

Consequently, attacker-controlled text presented as a correction could cross the trust boundary from an untrusted conversation into persistent state. Repetition is the only stated promotion criterion and is not a meaningful authenticity check. If long-term memory is subsequently loaded as authoritative agent context, a promoted instruction-like entry could influence future sessions.

Exploitation depends on the heartbeat and memory-management instructions being active and on later sessions consuming the resulting memory. The audited package does not contain executable code that independently performs these writes.

Attack Path

  1. An attacker interacts with the agent and submits a crafted instruction disguised as a correction.
  2. The event-driven rule causes that content to be recorded in self-improving/corrections.md.
  3. The attacker repeats the correction at least three times, satisfying the stated promotion threshold.
  4. During the weekly heartbeat review, t ...[truncated 783 chars]
Remediation
View remediation

Remediation Suggestions

  1. Require explicit, authenticated owner approval before any user-originated correction is written to persistent storage or promoted into long-term memory.
  2. Store corrections as inert, quoted records with metadata such as source, timestamp, conversation identifier, and approval status.
  3. Apply a strict schema that permits only narrowly defined factual corrections or user preferences; reject commands, tool instructions, policy changes, and role-modifying text.
  4. Replace repetition-based promotion with a controlled review process. Repeated attacker input must not be treated as evidence of trustworthiness.
  5. Keep untrusted correction records separate from authoritative instruction and memory files.
  6. Escape or delimit stored content so it cannot be interpreted as agent instructions when memory is loaded.
  7. Maintain an append-only audit trail for memory additions, approvals, modifications, and removals.
  8. Provide rollback and quarantine mechanisms for suspicious entries.
  9. Run future sessions with least-privilege tool access so memory poisoning cannot automatically translate into sensitive external actions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (14)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The instructions define the agent persona and behavior entirely in Chinese without indicating user language preference or fallback behavior. This can cause the skill to respond in an unexpected language, increasing misunderstanding in a decision-support domain where users may rely on nuanced financial and property guidance.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill auto-selects modes from short, ambiguous user inputs such as only a community name plus area, which can cause the agent to infer goals and proceed without confirming user intent. In a real-estate advisory context, that can lead to collecting or acting on sensitive assumptions about ownership, purchase plans, or replacement strategy, and may produce misleading advice under the wrong workflow.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

该文件是 markdown,适用 SQP-2。L10 明确要求删除 7 天前的临时日志,L19 要求清理超过 180 天的归档文件,但文档没有提示这些操作会移除文件、可能造成数据丢失,亦未说明是否需要确认、备份或恢复策略。

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

该文件是 markdown,适用 SQP-1。L31-L35 的“用户纠正”“搜索 API 失败”“新小区分析方法”等触发条件都是自然语言概念,但未定义判定边界、来源或排除条件,例如什么算“用户纠正”或“新方法”,容易与日常交互或一般性讨论混淆。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file presents the skill entirely in Chinese and defines its persona and communication style in that language, with no indication that users may select another language or locale. This can violate a language/locale policy when the skill implicitly constrains interactions to a specific language without explicit user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file is entirely written in Chinese and defines the agent identity and interaction principles in Chinese without any indication that users may choose another language. Under the policy rule for natural-language violations, this can be read as imposing a specific language/locale without user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description is entirely in Chinese and presents the skill as operating in that language, with no indication that users may choose another language. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to provide listing screenshots and relies on external property-platform data, but it does not include a user-facing privacy notice or minimization guidance. Screenshots can contain sensitive personal information, account identifiers, addresses, agent details, or transaction metadata, creating avoidable privacy exposure during collection and analysis.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Automatic mode selection based on sparse phrasing is ambiguous and may misclassify whether the user is an owner, buyer, or swapper. Misclassification can cause the agent to infer financial posture, give the wrong decision framework, or collect unnecessary contextual data for a different workflow than the user intended.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill treats a minimal pattern like 'community name + area' as a complete invocation, which can cause accidental activation from ordinary conversation and trigger data retrieval/analysis without clear user intent. In a real-estate context this can lead to unintended processing of location-linked personal interests and confusing outputs that appear authoritative.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file’s natural-language content is entirely framed in Chinese and presents the tool usage guidance as mandatory instructions for the skill, without any indication that users may choose another language. Under the policy, forcing a specific language or locale without user opt-in is a reportable natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

在 markdown 文件中,若描述会访问环境变量或系统配置,应提示可能涉及系统环境检查。L34 指示检查 AUTH_GATEWAY_PORT 环境变量,但没有任何关于系统配置访问或排障影响范围的说明。

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The document instructs the assistant to use a specific Chinese greeting and onboarding script for the first user message, with no indication that the user can choose another language. This is a natural-language locale constraint that is not presented as optional or justified as region-specific compliance.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file presents all user-facing content in Chinese, including headings and example user questions, with no indication that users can choose another language. That can violate a language/locale policy when a skill implicitly forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.