Trust Assessment
restaurant-review-crosscheck received a trust score of 10/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 14 findings: 1 critical, 1 high, 12 medium, and 0 low severity. Key findings include Suspicious import: requests, Unpinned Python dependency version, Persistent Browser Sessions Store Sensitive Credentials.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Dependency Graph layer scored lowest at 44/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings14
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Persistent Browser Sessions Store Sensitive Credentials The skill uses Playwright's `launch_persistent_context` with `user_data_dir` to store full browser sessions for Dianping and Xiaohongshu. These session directories (`dianping_session_dir`, `xhs_session_dir`) contain authentication cookies, local storage, and other sensitive user data. If the skill's environment is compromised, or if an attacker gains access to the filesystem where these sessions are stored, they can exfiltrate these session files. This would allow an attacker to impersonate the user on Dianping and Xiaohongshu without needing their password, leading to full account compromise. Implement robust access controls for the session directories. Consider encrypting session data at rest. Provide clear warnings to users about the security implications of persistent sessions and the need to secure their environment. Explore alternative authentication methods if available, such as API tokens that can be revoked. | LLM | scripts/session_manager.py:31 | |
| HIGH | System-wide Package Installation with --break-system-packages The `setup.sh` script uses `pip install --break-system-packages` to install Python dependencies. This flag forces pip to install packages into the system-wide Python environment, bypassing virtual environment best practices. This significantly increases the attack surface and potential impact of a supply chain compromise. If any installed package were malicious, it could gain control over the entire system's Python environment, leading to broader system compromise. Remove the `--break-system-packages` flag. Strongly recommend or enforce the use of Python virtual environments (e.g., `venv`) for dependency installation to isolate the skill's environment from the system. Update the `setup.sh` script to create and activate a virtual environment before installing dependencies. | LLM | setup.sh:20 | |
| MEDIUM | Suspicious import: requests Import of 'requests' 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/liyang2016/restaurant-crosscheck/scripts/crosscheck_simple.py:13 | |
| MEDIUM | Suspicious import: requests Import of 'requests' 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/liyang2016/restaurant-crosscheck/scripts/fetch_dianping.py:7 | |
| MEDIUM | Suspicious import: requests Import of 'requests' 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/liyang2016/restaurant-crosscheck/scripts/fetch_xiaohongshu.py:7 | |
| MEDIUM | Unpinned Python dependency version Requirement 'requests>=2.31.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:4 | |
| MEDIUM | Unpinned Python dependency version Requirement 'beautifulsoup4>=4.12.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:5 | |
| MEDIUM | Unpinned Python dependency version Requirement 'lxml>=4.9.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:6 | |
| MEDIUM | Unpinned Python dependency version Requirement 'playwright>=1.40.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:9 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pandas>=2.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:12 | |
| MEDIUM | Unpinned Python dependency version Requirement 'numpy>=1.24.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:13 | |
| MEDIUM | Unpinned Python dependency version Requirement 'thefuzz>=0.3.1' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:16 | |
| MEDIUM | Unpinned Python dependency version Requirement 'urllib3>=2.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Dependencies | skills/liyang2016/restaurant-crosscheck/scripts/requirements.txt:19 | |
| MEDIUM | Unpinned Dependencies in Setup Script The `setup.sh` script installs Python dependencies without specifying exact versions (e.g., `package`). This means it will install the latest available version at the time of execution. While `requirements.txt` uses minimum version pinning (`package>=version`), the `setup.sh` script does not adhere to this. This introduces a supply chain risk, as a new, potentially vulnerable, or malicious version of a dependency could be automatically installed without review. Pin all dependencies to exact versions (e.g., `package==1.2.3`) in `setup.sh` or, preferably, use `pip install -r requirements.txt` after ensuring `requirements.txt` has exact pins. Regularly review and update pinned versions to incorporate security fixes. | LLM | setup.sh:20 |
Scan History
Embed Code
[](https://skillshield.io/report/1d24cb1be1d6dc0f)
Powered by SkillShield