Back to skill

Security audit

ORBCAFE Pivot + AINav

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small documentation-only helper for ORBCAFE pivot tables and voice navigation, with one production-safety note around its local WebSocket example.

Before installing or using this skill, treat the voice WebSocket URL as a development placeholder. For real applications, configure the ASR endpoint outside the copied recipe, use authenticated secure transport for non-local endpoints, show clear microphone state and consent, and require confirmation for sensitive voice-triggered actions.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/recipes.md:41
Finding

Hardcoded Plaintext WebSocket Endpoint in Voice Navigation Recipe

Content
View full analysis
{ await routeByIntent(text); }} onVoiceError={(err) => console.error(err)} longPressMs={200} wsUrl="ws://localhost:8765" > {children} ; ``` ### Technical Analysis The voice-navigation recipe assigns the ASR endpoint using a hardcoded `ws://localhost:8765` URL. The `ws://` scheme does not provide transport encryption or endpoint authentication. The example also provides no mechanism for authenticating the ASR service. This contradicts the project's own requirement in `references/guardrails.md:18`, which states that the WebSocket URL and ASR authentication must come from application configuration rather than hardcoded values. Because this file is an implementation recipe intended to be copied into generated applications, developers may deploy the pattern without validating the endpoint, enforcing secure transport, or authenticating the receiving service. Although the example points to localhost, a process under another user's control or a compromised local process may bind to the expected port. If developers replace the host but retain the plaintext scheme, network-positioned attackers may intercept or modify the WebSocket traffic. ### Attack Path 1. A developer copies the voice-navigation recipe into an application. 2. The application opens an unauthenticated plaintext connection to `ws://localhost:8765`. 3. An attacker-controlled or compromised local process listens on port `8765`, or the endpoint is changed to a remote host while retaining `ws://`. 4. The application connects to the untrusted service without validating its identity. 5. Voice-related data sent through the ASR channel may be observed, retained, or manipulated by the attacker. 6. Manipulated ASR responses may be ...[truncated 824 chars]
Remediation
View remediation
{ await routeByIntent(validateVoiceIntent(text)); }} onVoiceError={handleVoiceError} longPressMs={200} wsUrl={asrUrl} > {children} ; ``` ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The example captures spoken input, converts it to text, and forwards that text to a WebSocket endpoint without showing any consent flow, privacy notice, or transport security requirement. Because voice input often contains sensitive personal or business data, this pattern can lead developers to implement silent collection and transmission of user speech, especially since the sample uses insecure ws:// rather than authenticated and encrypted transport.

Content

No source excerpt is available for this finding.