T09 · Insecure Skill Coding Practices
- Location
core/transport-layer.js:357- Finding
Recipient-Controlled Path Traversal Allows File Placement Outside the Configured Inbox
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is not clearly malicious, but it overstates production-ready communication while persisting messages to weakly scoped filesystem paths and reporting simulated transports/protocols as successful.
Review carefully before installing in any real agent workflow. Use it only in a disposable or test environment unless recipient identifiers are validated, writable paths are sandboxed, MessagePack is disabled or replaced with a real implementation, and HTTP/WebSocket simulation is made fail-closed or clearly test-only.
core/transport-layer.js:357Recipient-Controlled Path Traversal Allows File Placement Outside the Configured Inbox
core/transport-layer.js:676HTTP and WebSocket Transports Report Successful Delivery Without Sending Data
core/protocol-layer.js:259Simulated MessagePack Serialization Discards Original Messages and Fabricates Deserialized Content
pack-delivery.sh:17Predictable Shared Temporary Directory Allows Local Package-Build Manipulation
A skill advertised as a communication framework but actually focused on benchmarking and filesystem test artifact handling creates a trust gap between claimed and real behavior. Users may run it in sensitive environments expecting message handling while it performs local file creation, deletion, and result export, which can have unintended operational or security consequences.
A skill advertised as a communication framework but actually focused on benchmarking and filesystem test artifact handling creates a trust gap between claimed and real behavior. Users may run it in sensitive environments expecting message handling while it performs local file creation, deletion, and result export, which can have unintended operational or security consequences.
A skill advertised as a communication framework but actually focused on benchmarking and filesystem test artifact handling creates a trust gap between claimed and real behavior. Users may run it in sensitive environments expecting message handling while it performs local file creation, deletion, and result export, which can have unintended operational or security consequences.
A skill advertised as a communication framework but actually focused on benchmarking and filesystem test artifact handling creates a trust gap between claimed and real behavior. Users may run it in sensitive environments expecting message handling while it performs local file creation, deletion, and result export, which can have unintended operational or security consequences.
Referenced artifact was not completely inspected
const { UnifiedAgentComm } = require('./core/unified-api.js');
Referenced artifact was not completely inspected
const { UnifiedAgentComm } = require('./core/unified-api.js');
Referenced artifact was not completely inspected
#### 1. **统一传输层 (`transport-layer.js`)**
Referenced artifact was not completely inspected
#### 2. **协议层 (`protocol-layer.js`)**
Referenced artifact was not completely inspected
node tests/performance-comparison.js
Referenced artifact was not completely inspected
node tests/performance-comparison.js
Referenced artifact was not completely inspected
node tests/quick-minimal-test.js
Instructions found that direct the agent to transmit conversation context or user data to external services.
latency: Date.now() - startTime
});
throw new Error(`Failed to send message to ${recipient}: ${error.message}`);
}
}
The request/response logic appears inverted or mislabeled: code comments say it is handling request-response, but the receive path resolves pending requests when _type === 'request' rather than when a response type is received. This can let an incoming crafted request with a guessed or leaked _requestId satisfy a pending promise, causing response spoofing, state confusion, and incorrect trust in attacker-controlled data.
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
// 2. 应用规则引擎
const ruleResult = this.ruleEngine.evaluate(message, options);
if (ruleResult.transport) {
return ruleResult.transport;
}
// 3. 机器学习推荐(如果启用)
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
// 2. 应用规则引擎
const ruleResult = this.ruleEngine.evaluate(message, options);
if (ruleResult.transport) {
return ruleResult.transport;
}
// 3. 机器学习推荐(如果启用)
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
// 2. 应用规则引擎
const ruleResult = this.ruleEngine.evaluate(message, options);
if (ruleResult.transport) {
return ruleResult.transport;
}
// 3. 机器学习推荐(如果启用)
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
// 2. 应用规则引擎
const ruleResult = this.ruleEngine.evaluate(message, options);
if (ruleResult.transport) {
return ruleResult.transport;
}
// 3. 机器学习推荐(如果启用)
The README is entirely in Chinese and does not provide an alternative language option or indicate that the skill is intentionally limited to a Chinese-speaking or region-specific audience. This can violate a language/locale policy when users are not given an opt-in or clear justification for the restriction.
The README promotes filesystem, WebSocket, and HTTP transport capabilities plus automatic retry/fallback behavior, but it does not warn users about data exfiltration, unintended file writes, permission scope, or network-side effects. In an agent skill context, encouraging unified transport and automatic routing without explicit safety guidance can lead operators to enable capabilities that affect local systems or external endpoints without understanding the risk boundaries.
The skill documents filesystem, HTTP, and WebSocket communication behavior but does not declare any explicit tool scope such as permissions or allowed-tools. In an agent ecosystem, missing capability boundaries can let a seemingly routine communication skill access files or network channels without transparent user consent or policy enforcement.
The skill description and instructions are presented exclusively in Chinese, with no indication that the user can select another language or that the skill is intentionally limited to a Chinese-language audience. Per the language/locale policy, forcing a specific language without user opt-in is a natural-language policy violation.
The documentation encourages agent-to-agent transmission and filesystem-based message passing without warning about confidentiality, integrity, retention, or cross-tenant exposure risks. In practice, writing messages to shared directories or passing them between agents can leak sensitive data, permit tampering, or create unauthorized persistence.
The skill documents HTTP and WebSocket transports without user-facing warnings about sending data across network boundaries. That can cause operators to expose internal agent messages over insecure or unintended channels, especially when example URLs use plain HTTP and WS rather than authenticated, encrypted transports.
The file's human-readable comments and operational log/test strings are written in Chinese throughout, with no indication that users may choose another language or that the skill is intentionally region-specific. This creates a locale/language policy concern because the skill appears to impose a language without opt-in.
This code serializes the provided message and writes it to a JSON file on disk, which can affect user data and system state. Although comments describe the implementation, they are internal and do not disclose to the user that message contents will be persisted under the workspace directory.
No suspicious patterns detected.