Most static shell-execution, obfuscation, path-traversal, and documentation URL findings are false positives caused by JavaScript template literals, ANSI color codes, static imports, or examples. Real risk remains from outbound requests to www.guaikei.com, sensitive token handling, local result persistence, query-string credentials, and a hardcoded default token.
The code reads GUAIKEI_API_TOKEN and later uses the token for outbound API calls. API tokens are sensitive and can be exposed if request handling or logs leak URLs.
When GUAIKEI_API_TOKEN is missing or invalid, lib/key.js returns a fixed default token. A bundled shared token can hide network use, mix user traffic, and create quota or accountability risk.
The code explicitly warns about a missing token and returns a fixed 32-character token value on line 20. This is direct evidence of a shared fallback credential.
The API token is placed in request query parameters for task creation and result polling. Query-string credentials are commonly captured in logs, proxies, and error reports.
Both request builders include token in params and append querystring.stringify(params) to the path. The credential is therefore carried in the URL path for outbound requests.
Public Social Content Collection With Local Persistence
The skill extracts public Douyin links and media URLs, recommends retaining temporary CDN links, and writes full search results locally. This creates compliance and retention risk for collected social-media data.
The documentation describes link extraction and retention of CDN links, while the script writes final results to last-search.json. The finding is about collection and retention intent, not a single API call.
Capability review items (13)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The code performs outbound HTTPS requests to the hardcoded www.guaikei.com API. User keywords and API token-derived parameters are sent outside the local environment.
The code performs outbound HTTPS requests to the hardcoded www.guaikei.com API. User keywords and API token-derived parameters are sent outside the local environment.
The script deletes local output or lock files under the scripts directory. The paths are constrained, but the behavior is still a local filesystem side effect.
The script deletes local output or lock files under the scripts directory. The paths are constrained, but the behavior is still a local filesystem side effect.
The script creates a local lock file derived from sanitized keyword parameters. The path is constrained, but the skill still modifies the local filesystem.
The script writes full search output to scripts/last-search.json. The path is fixed, but local persistence of collected social-media data is a real exposure surface.
The script creates a local lock file derived from sanitized keyword parameters. The path is constrained, but the skill still modifies the local filesystem.
The script writes full search output to scripts/last-search.json. The path is fixed, but local persistence of collected social-media data is a real exposure surface.
The script reads GUAIKEI_API_TOKEN from process.env and passes it into API token handling. This is expected configuration, but it is sensitive environment access.
The script reads GUAIKEI_API_TOKEN from process.env and passes it into API token handling. This is expected configuration, but it is sensitive environment access.
Most static shell-execution, obfuscation, path-traversal, and documentation URL findings are false positives caused by JavaScript template literals, ANSI color codes, static imports, or examples. Real risk remains from outbound requests to www.guaikei.com, sensitive token handling, local result persistence, query-string credentials, and a hardcoded default token.
The code reads GUAIKEI_API_TOKEN and later uses the token for outbound API calls. API tokens are sensitive and can be exposed if request handling or logs leak URLs.
When GUAIKEI_API_TOKEN is missing or invalid, lib/key.js returns a fixed default token. A bundled shared token can hide network use, mix user traffic, and create quota or accountability risk.
The code explicitly warns about a missing token and returns a fixed 32-character token value on line 20. This is direct evidence of a shared fallback credential.
The API token is placed in request query parameters for task creation and result polling. Query-string credentials are commonly captured in logs, proxies, and error reports.
Both request builders include token in params and append querystring.stringify(params) to the path. The credential is therefore carried in the URL path for outbound requests.
Public Social Content Collection With Local Persistence
The skill extracts public Douyin links and media URLs, recommends retaining temporary CDN links, and writes full search results locally. This creates compliance and retention risk for collected social-media data.
The documentation describes link extraction and retention of CDN links, while the script writes final results to last-search.json. The finding is about collection and retention intent, not a single API call.
Capability review items (13)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The code performs outbound HTTPS requests to the hardcoded www.guaikei.com API. User keywords and API token-derived parameters are sent outside the local environment.
The code performs outbound HTTPS requests to the hardcoded www.guaikei.com API. User keywords and API token-derived parameters are sent outside the local environment.
The script deletes local output or lock files under the scripts directory. The paths are constrained, but the behavior is still a local filesystem side effect.
The script deletes local output or lock files under the scripts directory. The paths are constrained, but the behavior is still a local filesystem side effect.
The script creates a local lock file derived from sanitized keyword parameters. The path is constrained, but the skill still modifies the local filesystem.
The script writes full search output to scripts/last-search.json. The path is fixed, but local persistence of collected social-media data is a real exposure surface.
The script creates a local lock file derived from sanitized keyword parameters. The path is constrained, but the skill still modifies the local filesystem.
The script writes full search output to scripts/last-search.json. The path is fixed, but local persistence of collected social-media data is a real exposure surface.
The script reads GUAIKEI_API_TOKEN from process.env and passes it into API token handling. This is expected configuration, but it is sensitive environment access.
The script reads GUAIKEI_API_TOKEN from process.env and passes it into API token handling. This is expected configuration, but it is sensitive environment access.
Static shell-execution alerts are false positives caused by JavaScript template literals and documentation command examples. The confirmed risk is high because this community skill runs a Node.js script, reads GUAIKEI_API_TOKEN, sends the token and search terms to www.guaikei.com, and writes search output to local files.
7
Files scanned
1,043
Lines analyzed
8
Review items
2
False positives ignored
Capability review items (4)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The command reads GUAIKEI_API_TOKEN and passes it into requests to www.guaikei.com. This is intended API use, but it exposes user search terms and credentials to an external service controlled outside the marketplace.
The token is read from process.env and passed to createWithRetry and searchWithRetry. Both request builders use the external hostname www.guaikei.com.
API Token Included in Request URL Query Parameters
The API token is placed in query parameters for both task creation and result lookup. Query parameters are commonly captured by proxies, server logs, and debugging tools.
The request path is built with querystring.stringify(params), and params includes token in both API calls. This is a clear credential exposure pattern even if the service is legitimate.
If GUAIKEI_API_TOKEN is missing or invalid, the skill silently falls back to a hardcoded token. This can route user searches through a shared credential without explicit consent.
The fallback token is returned directly when the environment value is absent, empty, non-string, or not 32 characters. The code labels this as a default experience token.
The script writes the complete final output to scripts/last-search.json. The results may include public content links, author metadata, timestamps, and the user search keyword.
The writeFileSync call stores finalOutput after it is populated with keyword, result metadata, and content URLs. The data appears public, but local persistence is not optional.
Static false positives ignored (2)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
Static External Command Alerts Are False Positives
The reported backtick locations are JavaScript template literals or Markdown command examples, not shell execution APIs. No evidence of child_process, eval, or shell backtick execution was found in the inspected files.
The cited code uses console output strings and documentation blocks. These constructs do not execute commands in Node.js or Markdown.
Static Path Traversal Alerts Are Mostly False Positives
The ../lib imports are normal relative module imports, and the image join operation is output formatting. Keyword-derived lock files are constrained by sanitization, but still create local files from user input.
The imports do not traverse user-controlled paths. The remaining lock-file path uses sanitized keywords, so traversal is unlikely, but filesystem side effects remain real.
Static shell-execution alerts are false positives caused by JavaScript template literals and documentation command examples. The confirmed risk is high because this community skill runs a Node.js script, reads GUAIKEI_API_TOKEN, sends the token and search terms to www.guaikei.com, and writes search output to local files.
7
Files scanned
1,043
Lines analyzed
8
Review items
2
False positives ignored
Capability review items (4)
These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.
The command reads GUAIKEI_API_TOKEN and passes it into requests to www.guaikei.com. This is intended API use, but it exposes user search terms and credentials to an external service controlled outside the marketplace.
The token is read from process.env and passed to createWithRetry and searchWithRetry. Both request builders use the external hostname www.guaikei.com.
API Token Included in Request URL Query Parameters
The API token is placed in query parameters for both task creation and result lookup. Query parameters are commonly captured by proxies, server logs, and debugging tools.
The request path is built with querystring.stringify(params), and params includes token in both API calls. This is a clear credential exposure pattern even if the service is legitimate.
If GUAIKEI_API_TOKEN is missing or invalid, the skill silently falls back to a hardcoded token. This can route user searches through a shared credential without explicit consent.
The fallback token is returned directly when the environment value is absent, empty, non-string, or not 32 characters. The code labels this as a default experience token.
The script writes the complete final output to scripts/last-search.json. The results may include public content links, author metadata, timestamps, and the user search keyword.
The writeFileSync call stores finalOutput after it is populated with keyword, result metadata, and content URLs. The data appears public, but local persistence is not optional.
Static false positives ignored (2)
These static matches were dismissed by semantic review or matched schema-only tokens, so they are shown for transparency but do not drive the quality score.
Static External Command Alerts Are False Positives
The reported backtick locations are JavaScript template literals or Markdown command examples, not shell execution APIs. No evidence of child_process, eval, or shell backtick execution was found in the inspected files.
The cited code uses console output strings and documentation blocks. These constructs do not execute commands in Node.js or Markdown.
Static Path Traversal Alerts Are Mostly False Positives
The ../lib imports are normal relative module imports, and the image join operation is output formatting. Keyword-derived lock files are constrained by sanitization, but still create local files from user input.
The imports do not traverse user-controlled paths. The remaining lock-file path uses sanitized keywords, so traversal is unlikely, but filesystem side effects remain real.
Static analyzer produced 59 false positive shell execution alerts - these are JavaScript template literals, not command injection. Legitimate HTTPS API client for Douyin search. Minor risks: third-party API dependency on guaikei.com, hardcoded default token placeholder, and file lock mechanism. No malicious patterns detected after manual review.
Default token 'e10adc3949ba59abbe56e057f20f883e' (MD5 of '123456') is hardcoded as fallback in lib/key.js. While documented as placeholder, it could be accidentally used in production.
Clear evidence of hardcoded credential placeholder - common anti-pattern that could lead to accidental exposure
File-based locking mechanism uses check-then-create pattern which could have race conditions under high concurrency. Lock files use predictable names based on task ID.
Pattern visible in code but impact is limited to local file system - no remote exploitation vector