Back to skill

Security audit

还活着么监测服务

Security checks for vulnerabilities and agentic risk

Overview

This skill handles sensitive welfare-check data, but its published artifacts expose credentials, lack access controls, contradict privacy claims, and may fail to deliver emergency alerts.

Do not deploy this skill for real users without review and fixes. Require authentication and per-user authorization, remove and rotate the exposed SkillPay key, correct the emergency-alert notification code, encrypt or otherwise protect stored data, narrow CORS, document consent and retention, and update flagged dependencies.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
src/index.js:43
Finding

Unauthenticated Access to Sensitive User Data and Safety-Critical Operations

Content
View full analysis
{ res.header('Access-Control-Allow-Origin', '*'); next(); }); this.app.use((req, res, next) => { console.log(`[${new Date().toISOString()}] ${req.method} ${req.path}`); next(); }); } ``` The following sensitive routes are registered without authentication or authorization middleware: ```javascript // Register user this.app.post('/register', async (req, res) => { try { const { userId, name, phone, emergencyContacts } = req.body; if (!userId || !name) { return res.status(400).json({ error: 'Missing required fields' }); } const user = this.userManager.registerUser(userId, { name, phone, emergencyContacts }); res.json({ success: true, message: 'Registration successful', user }); } catch (error) { console.error('Registration failed:', error); res.status(500).json({ error: error.message }); } }); // User check-in this.app.post('/checkin', async (req, res) => { try { const { userId, message, mood, location } = req.body; if (!userId) { return res.status(400).json({ error: 'Missing userId' }); } const result = this.userManager.checkin(userId, { message, mood, location }); res.json({ success: true, message: 'Check-in successful', data: result }); } catch (error) { console.error('Check-in failed:', error); res.status(500).json({ error: error.message }); } }); // Query status this.app.get('/status/:userId', (req, res) => { try { const { userId } = req.params; const status = this.userManager.getUserStatus(userId); if (!status) { ...[truncated 3870 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
src/utils/userManager.js:54
Finding

Sensitive Personal and Location Data Stored in Plaintext Files

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
skill.json:15
Finding

Hard-Coded SkillPay API Credential Distributed with the Project

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
src/utils/alertMonitor.js:137
Finding

Emergency Alert Content Is Silently Discarded by Notification Implementations

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (49)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The README includes what appears to be a real SkillPay API key in .env example content rather than a placeholder. Exposed secrets can be harvested from repositories, abused for unauthorized API usage, billing fraud, or account compromise, and this is especially dangerous because the service processes sensitive user and emergency-contact data.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: axios==1.13.6 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
97% confidence
Finding

The lockfile pins axios 1.13.6, and the reported advisories include SSRF-related and prototype-pollution-chain issues. In a monitoring skill that likely performs outbound HTTP checks, axios is directly relevant, so an exploitable dependency bug could materially affect request routing, credential handling, or response trust.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: brace-expansion==5.0.4 — 5 advisory(ies): CVE-2026-13149 (brace-expansion: DoS via exponential-time expansion of consecutive non-expanding); CVE-2026-33750 (brace-expansion: Zero-step sequence causes process hang and memory exhaustion); CVE-2026-45149 (brace-expansion: Large numeric range defeats documented `max` DoS protection) +2 more

High
Category
Supply Chain
Confidence
88% confidence
Finding

brace-expansion 5.0.4 is associated with multiple expansion-based DoS issues. Here it is a dev dependency path through tooling, so the production risk is lower, but it can still affect developer workflows, CI, or any environment where untrusted glob-like input reaches the package.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: form-data==4.0.5 — 1 advisory(ies): CVE-2026-12143 (form-data: CRLF injection in form-data via unescaped multipart field names and f)

High
Category
Supply Chain
Confidence
90% confidence
Finding

form-data 4.0.5 is reported vulnerable to CRLF injection through multipart field names/filenames. If this skill builds multipart requests from external input, an attacker may be able to smuggle headers or alter request structure when contacting downstream services.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: lodash==4.17.23 — 2 advisory(ies): CVE-2025-13465 (lodash vulnerable to Prototype Pollution via array path bypass in `_.unset` and ); CVE-2021-23337 (lodash vulnerable to Code Injection via `_.template` imports key names)

High
Category
Supply Chain
Confidence
87% confidence
Finding

lodash 4.17.23 is flagged for prototype pollution and template-related code-injection risks. In this lockfile it appears as a transitive dependency of @sapphire/shapeshift rather than obvious direct application logic, which lowers exploit certainty, but pollution vulnerabilities can become serious if attacker-controlled objects are merged or unset paths are processed.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: nodemailer==6.10.1 — 12 advisory(ies): CVE-2026-82661 (Nodemailer: CRLF injection in Nodemailer List-* header comments allows arbitrary); GHSA-2x7j-588g-ccc2 (Nodemailer: Quadratic (O(n²)) time complexity in addressparser allows remote den); GHSA-8m3c-c648-2xjj (Nodemailer: resolveContent() on a MailMessage bypasses disableFileAccess/disable) +9 more

High
Category
Supply Chain
Confidence
95% confidence
Finding

nodemailer 6.10.1 carries multiple advisories including CRLF injection and content-resolution bypasses. This project explicitly includes email notification capability, so a vulnerable mail library is directly in scope and could enable header injection, file/content access bypass, or denial of service if attacker-controlled email fields are used.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: path-to-regexp==0.1.12 — 1 advisory(ies): CVE-2024-45296 (path-to-regexp vulnerable to Regular Expression Denial of Service via multiple r)

High
Category
Supply Chain
Confidence
92% confidence
Finding

path-to-regexp 0.1.12 is flagged for ReDoS and is pulled in by Express routing. If the service exposes routes influenced by attacker-chosen paths, specially crafted requests may trigger excessive regex backtracking and degrade availability.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: picomatch==2.3.1 — 2 advisory(ies): CVE-2026-33672 (Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Mat); CVE-2026-33671 (Picomatch has a ReDoS vulnerability via extglob quantifiers)

High
Category
Supply Chain
Confidence
82% confidence
Finding

picomatch 2.3.1 is a dev-tooling dependency associated with method-injection and ReDoS issues. In this project it is only present through development watchers, so it is unlikely to affect deployed runtime behavior unless untrusted glob input reaches local tooling or CI.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: undici==6.21.3 — 13 advisory(ies): CVE-2026-1525 (Undici has an HTTP Request/Response Smuggling issue); CVE-2026-6733 (undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse); CVE-2026-1527 (Undici has CRLF Injection in undici via `upgrade` option) +10 more

High
Category
Supply Chain
Confidence
94% confidence
Finding

undici 6.21.3 is flagged for request smuggling, queue poisoning, and CRLF-injection-style issues. This dependency is used by discord.js and related networking components, so the risk is meaningful in a bot/monitoring service that maintains network-facing connections and processes remote protocol traffic.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==8.19.0 — 2 advisory(ies): CVE-2026-45736 (ws: Uninitialized memory disclosure); CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
93% confidence
Finding

ws 8.19.0 is reported vulnerable to memory disclosure and fragmentation-driven memory exhaustion. This matters in a bot stack using Discord websocket functionality, because remote peers or protocol-adjacent attackers may be able to trigger availability loss or expose process memory under adverse conditions.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: axios==1.13.6 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
80% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: nodemailer==6.10.1 — 12 advisory(ies): CVE-2026-82661 (Nodemailer: CRLF injection in Nodemailer List-* header comments allows arbitrary); GHSA-2x7j-588g-ccc2 (Nodemailer: Quadratic (O(n²)) time complexity in addressparser allows remote den); GHSA-8m3c-c648-2xjj (Nodemailer: resolveContent() on a MailMessage bypasses disableFileAccess/disable) +9 more

High
Category
Supply Chain
Confidence
80% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

README 全文均为中文,未提供其他语言选项,也未说明这是面向特定中文地区用户的限定文档。按照语言/地区政策,若技能强制单一语言而不给用户选择或合理限定,可能构成自然语言层面的政策问题。

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 37)May include surrounding context.

注册用户

bash
curl -X POST http://localhost:3000/register \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "user123",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README describes automatic escalation to emergency contacts, including high-risk labeling and suggesting in-person checks, but does not clearly warn about consent, false positives, or privacy consequences. In this skill's context, those omissions matter because the system handles sensitive welfare-status signals and could trigger harmful disclosures or interventions if misconfigured or inaccurate.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README makes a concrete security/privacy assurance that 'all data is encrypted in storage' without any supporting implementation, configuration, or qualification. Unsupported security claims can mislead operators and users into trusting the system with sensitive health/contact data under false assumptions, resulting in insecure deployment and compliance risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill describes collecting highly sensitive personal and behavioral data, including identity, phone numbers, location, health-adjacent wellness signals, and emergency contacts, then automatically sharing alerts with third parties. Because the description does not clearly disclose retention, consent, access controls, or the exact circumstances of data sharing, users may unknowingly expose private information and contacts to monitoring and escalation flows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The text explicitly lists '中文界面' as a feature, indicating the skill is designed around a fixed language. Under the policy, forcing a specific language without offering a user choice or documenting a justified locale constraint is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The package description is written only in Chinese ("独居人群每日签到监测服务,关爱独居安全"), which indicates a fixed language/locale presentation in the skill metadata. There is no accompanying indication that users may choose another language or that the skill is intentionally limited to a Chinese-speaking region for compliance or other justified reasons.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The description is high-level and does not define clear activation boundaries, excluded use cases, or safety/privacy constraints for a service handling welfare check-ins and emergency contacts. In this context, ambiguous scope can lead to overbroad collection or use of sensitive personal and relationship data, and may cause the agent or integrator to invoke the skill in situations the user did not intend.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The application initializes Telegram, Discord, and email notification integrations using external-service credentials, indicating user data may be transmitted off-platform during alerts. Because this file provides no disclosure, consent, or controls around third-party sharing, sensitive user or emergency-contact information could be sent to external processors without users understanding where their data goes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The service accepts sensitive personal data including phone numbers, emergency contacts, mood, messages, and location through API endpoints, but this file shows no consent flow, privacy notice, access control, or data-minimization safeguards. In a wellness/safety monitoring context, collecting and likely storing this data without clear disclosure increases privacy and compliance risk, especially if downstream modules persist or forward it.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · src/payment.js (reported line 9)May include surrounding context.

js
class SkillPayment {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseURL = 'https://api.skillpay.me/v1';
    this.pricePerCall = 0.001; // USDT
  }

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The class-level documentation presents this module as a generic "SkillPay Payment Integration," and the createPaymentRequest docstring describes only creating a payment request. However, the implementation hard-codes the description 'GitHub Trending Monitor - API Call', tying the payment flow to a specific unrelated skill identity. This is an active documentation/intent mismatch because the code embeds a narrower, different purpose than the documented abstraction suggests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The code sends user identifiers and activity data to a third-party endpoint for analytics/usage logging without any visible consent, minimization, or privacy controls. Even if intended for billing or telemetry, transmitting identifiable usage data to an external service can create privacy, compliance, and data-handling risks if users are not informed or if the service is compromised.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.