Back to skill

Security audit

Nori Health

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward Nori health integration that sends the user's health-related question to Nori's API and returns the reply.

Install only if you are comfortable sending your health-related questions to Nori's service and storing a Nori API key for OpenClaw use. Avoid using it for emergencies, diagnosis, prescriptions, or health details you do not want processed by Nori.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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 (3)

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill explicitly instructs forwarding users' exact health-related messages to Nori's external API, but it does not clearly warn users at the point of use that sensitive health data will leave the local agent and be transmitted to a third party. Because the content includes sleep, heart rate, HRV, workouts, nutrition, weight, and lab results, the missing disclosure materially increases privacy and consent risk.

External Transmission

Medium
Category
Data Exfiltration
Content
Use `jq -n` to safely escape the user's message into valid JSON, and capture the HTTP status code to handle errors:

```bash
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "https://api.nori.health/api/v1/openclaw/chat" \
  -H "Authorization: Bearer $NORI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg msg "USER_MESSAGE_HERE" '{message: $msg}')")
Confidence
94% confidence
Finding
The hardcoded external domain confirms that the skill depends on sending user-provided health content to a third-party API. While this is expected for an integration skill, the surrounding instructions to forward messages verbatim increase sensitivity because no filtering or minimization is performed before transmitting potentially private health details.

External Transmission

Medium
Category
Data Exfiltration
Content
Use `jq -n` to safely escape the user's message into valid JSON, and capture the HTTP status code to handle errors:

```bash
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "https://api.nori.health/api/v1/openclaw/chat" \
  -H "Authorization: Bearer $NORI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg msg "USER_MESSAGE_HERE" '{message: $msg}')")
Confidence
94% confidence
Finding
The hardcoded external domain confirms that the skill depends on sending user-provided health content to a third-party API. While this is expected for an integration skill, the surrounding instructions to forward messages verbatim increase sensitivity because no filtering or minimization is performed before transmitting potentially private health details.

Static analysis

No suspicious patterns detected.