Ae1
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md node scripts/juejin.js categories
Security audit
Security checks for vulnerabilities and agentic risk
This skill fetches public Juejin article categories and rankings through a local Node script, with no evidence of credential use, persistence, destructive actions, or hidden data collection.
Install only if you are comfortable with a Node script making network requests to Juejin. The main transparency issue is the randomized browser User-Agent header; it is not evidence of data theft, but a static identifying User-Agent would be cleaner.
Referenced artifact was not completely inspected
node scripts/juejin.js categories
Referenced artifact was not completely inspected
node scripts/juejin.js categories
Referenced artifact was not completely inspected
node scripts/juejin.js categories
Referenced artifact was not completely inspected
node scripts/juejin.js categories
Referenced artifact was not completely inspected
node scripts/juejin.js categories
The script rotates among 15 realistic desktop and mobile User-Agent strings to make requests appear to come from different browsers/devices. For a simple public trending/category fetcher, this is unnecessary and can be used to evade rate-limiting, anti-bot detection, or attribution controls, increasing abuse potential beyond the stated skill purpose.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
*/
async function getCategories() {
try {
const response = await httpGet('https://api.juejin.cn/tag_api/v1/query_category_briefs');
if (response.err_no !== 0) {
throw new Error(response.err_msg || '获取分类失败');
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
*/
async function getCategories() {
try {
const response = await httpGet('https://api.juejin.cn/tag_api/v1/query_category_briefs');
if (response.err_no !== 0) {
throw new Error(response.err_msg || '获取分类失败');
The manifest description and the entire markdown content are written in Chinese, and the skill presents its usage and outputs exclusively in that language. Under the policy, a skill should not effectively force a specific language unless it offers user choice or clearly documents a justified locale constraint.
The request headers force Accept-Language to prefer zh-CN, which is a natural-language/locale policy choice embedded in code. The file does not provide a user opt-in, configuration option, or justification that the skill is intended only for a China-specific locale context.
No suspicious patterns detected.