Trust Assessment
oura-analytics received a trust score of 17/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 12 findings: 0 critical, 0 high, 12 medium, and 0 low severity. Key findings include Unsafe deserialization / dynamic eval, Suspicious import: urllib.request, Unpinned Python dependency version.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 65/100, indicating areas for improvement.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings12
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kesslerio/oura-analytics/scripts/baseline.py:6 | |
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kesslerio/oura-analytics/scripts/config.py:5 | |
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kesslerio/oura-analytics/scripts/daily_summary.py:6 | |
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kesslerio/oura-analytics/scripts/data_manager.py:5 | |
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kesslerio/oura-analytics/scripts/drivers.py:6 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/kesslerio/oura-analytics/scripts/alerts.py:13 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/kesslerio/oura-analytics/scripts/oura_api.py:16 | |
| MEDIUM | Suspicious import: urllib.request Import of 'urllib.request' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Static | skills/kesslerio/oura-analytics/scripts/weekly_report.py:12 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pytz' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/kesslerio/oura-analytics/requirements.txt:3 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pyyaml' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/kesslerio/oura-analytics/requirements.txt:4 | |
| MEDIUM | Personal Health Data Exfiltration to External Service (Telegram) The skill is designed to send personal Oura Ring health data (sleep scores, readiness, efficiency, sleep duration, trends, HRV) to Telegram if the `TELEGRAM_BOT_TOKEN` and `TELEGRAM_CHAT_ID` environment variables are configured. This functionality is implemented in `scripts/alerts.py` and `scripts/weekly_report.py`. While this is an intended feature for notifications and reports, it involves transmitting sensitive personal health information to an external messaging service, which could pose a privacy risk if the Telegram account or bot token is compromised or misconfigured. Users should be fully aware of the data being sent and the privacy implications. Ensure clear and prominent documentation for users regarding the privacy implications of enabling Telegram notifications. Explicitly state what types of personal health data are transmitted to Telegram and advise users on securing their Telegram bot tokens and chat IDs. Consider adding an explicit user opt-in or confirmation step before sending data to Telegram, beyond just setting environment variables. | LLM | scripts/alerts.py:99 | |
| MEDIUM | Personal Health Data Exfiltration to External Service (Telegram) The skill is designed to send personal Oura Ring health data (sleep scores, readiness, efficiency, sleep duration, trends, HRV) to Telegram if the `TELEGRAM_BOT_TOKEN` and `TELEGRAM_CHAT_ID` environment variables are configured. This functionality is implemented in `scripts/alerts.py` and `scripts/weekly_report.py`. While this is an intended feature for notifications and reports, it involves transmitting sensitive personal health information to an external messaging service, which could pose a privacy risk if the Telegram account or bot token is compromised or misconfigured. Users should be fully aware of the data being sent and the privacy implications. Ensure clear and prominent documentation for users regarding the privacy implications of enabling Telegram notifications. Explicitly state what types of personal health data are transmitted to Telegram and advise users on securing their Telegram bot tokens and chat IDs. Consider adding an explicit user opt-in or confirmation step before sending data to Telegram, beyond just setting environment variables. | LLM | scripts/weekly_report.py:199 |
Scan History
Embed Code
[](https://skillshield.io/report/77cc8f131c398199)
Powered by SkillShield