{"id":3473,"name":"suspend","author":"EryXenX","framework":"goat","overall":30,"grade":"F","level":"danger","verdict":"Dangerous — do not install without a full manual review","scores":{"security":84,"privacy":19,"quality":100,"maintenance":82,"community":20},"counts":{"critical":1,"high":1,"medium":1,"low":3},"alerts":[{"id":"exfil","severity":"critical","category":"privacy","title":"Possible credential exfiltration","description":"The file reads session data or secrets and also talks to the network. Verify nothing sensitive is being sent out.","count":1,"locations":[{"line":56,"snippet":"const profilePicUrl = \"https://graph.facebook.com/\" + targetID + \"/picture?height=720&width=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662\";"}]},{"id":"bot-credentials","severity":"high","category":"privacy","title":"Touches account session data","description":"References appState / cookies / access tokens. Stealing these is the classic way Messenger bot accounts get hijacked.","count":1,"locations":[{"line":56,"snippet":"const profilePicUrl = \"https://graph.facebook.com/\" + targetID + \"/picture?height=720&width=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662\";"}]},{"id":"fs-destructive","severity":"medium","category":"security","title":"Deletes files","description":"Calls fs.rm / unlink / rmdir. Check what path it deletes and whether a user can influence it.","count":1,"locations":[{"line":156,"snippet":"[avtPath, coverPath, outputPath].forEach(p => { try { fs.unlinkSync(p); } catch (_) {} });"}]},{"id":"hardcoded-ip","severity":"low","category":"privacy","title":"Hard-coded IP address","description":"Talks to a raw IP address instead of a named host — harder to audit and easy to redirect.","count":4,"locations":[{"line":226,"snippet":"const UA = \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36\";"},{"line":250,"snippet":"const mHeaders = { ...headers, \"user-agent\": \"Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 Chrome/120.0.0.0 Mobile Safari/537.36\" };"},{"line":263,"snippet":"\"user-agent\": \"Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 Chrome/120.0.0.0 Mobile Safari/537.36\","},{"line":346,"snippet":"\"user-agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36\","}]},{"id":"fs-access","severity":"low","category":"security","title":"Filesystem access","description":"Reads or writes files on the machine running the bot.","count":1,"locations":[{"line":2,"snippet":"const fs = require(\"fs-extra\");"}]},{"id":"network","severity":"low","category":"privacy","title":"Network access","description":"Makes HTTP/WebSocket requests. Check where the data goes.","count":1,"locations":[{"line":3,"snippet":"const axios = require(\"axios\");"}]}],"capabilities":[{"id":"network","label":"Network","active":true},{"id":"filesystem","label":"Filesystem","active":true},{"id":"shell","label":"Shell","active":false},{"id":"env","label":"Env vars","active":false},{"id":"eval","label":"Dynamic code","active":false},{"id":"credentials","label":"Session data","active":true},{"id":"install","label":"Installs packages","active":false},{"id":"process","label":"Process control","active":false}],"checks":[{"label":"Exports a command/module","ok":true},{"label":"Handles errors (try/catch or .catch)","ok":true},{"label":"Readable, not minified","ok":true},{"label":"Has explanatory comments","ok":true},{"label":"No deprecated dependencies","ok":true},{"label":"Reasonable size (< 200 KB)","ok":true}],"dependencies":{"builtin":[],"external":["axios","canvas","cheerio","fs-extra"],"local":[]},"domains":["graph.facebook.com","i.ibb.co.com","mbasic.facebook.com","www.facebook.com"],"scannedAt":"2026-11-05T14:12:37.561Z"}