Package evidence
@qqbrowser/[email protected]
Js Obfuscated Fetch Exec: Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection).
Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 361
- Versions published
- 109
- First published
- Mar 2026
- Publisher
- qqbrowser.dev
Recommended action
Block this updateStatic evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["@qqbrowser/[email protected]"],"fail_on":"high"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["@qqbrowser/[email protected]"],"fail_on":"high"}'Why flagged
What the scanner saw
Js Obfuscated Fetch Exec: Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection).
1 candidate cluster(s) currently reference this release.
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (4 events)
- scan_error → available · risk high · score 259 · status scan_error -> available, risk none -> high, score none -> 259
- available → scan_error · risk none · score — · error decoding response body
- available → available · risk high · score 209 · status available -> available, risk high -> high, score 247 -> 209
- new → available · risk high · score 247 · status changed
Related candidates
Linked campaigns and clusters
qqbrowser.dev
9 members · evidence strength 75qqbrowser.dev
9 members · max score 259Evidence
Static findings
102 static · 0 from release diff · showing high-signal first.
Showing 30 of 40 findings.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/imessage.cjs | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/signal.cjs | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/daemon-cli.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/imessage.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/signal.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-B_Szo_iC.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-B_VvxiGz.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CqoVd_Pm.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CXJGWqS_.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-JDsrfVFz.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-Om6-J4-H.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/compat.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/index.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/api-BeG0ObSq.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/api-Dx8x1KTs.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-0u3Ly_pe.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-1KMd-p3j.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-BF5cfdSv.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-CboZ2WJV.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CeCug1U8.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CYnTsfRX.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-D133FFW5.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-DZ4v2ao7.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-JgnCelkn.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-Vj66vnhD.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-vxmoUM1-.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/compat.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/index.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/onboard-channels-BxRH3GHj.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/onboard-channels-LctUsr_G.js | matched "api.telegram.org/bot" | 40 |
Show all 102 findings (low-signal and informational)
Showing 60 of 102 findings.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/imessage.cjs | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/signal.cjs | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/daemon-cli.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/imessage.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Js Obfuscated Fetch Exec | package/dist/plugin-sdk/signal.js | Hex-decoded literal + network fetch + child-process exec — staged obfuscated-loader / dropper (hides the C2 URL from literal-URL detection). | 45 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-B_Szo_iC.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-B_VvxiGz.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CqoVd_Pm.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CXJGWqS_.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-JDsrfVFz.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-Om6-J4-H.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/compat.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/index.cjs | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/api-BeG0ObSq.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/api-Dx8x1KTs.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-0u3Ly_pe.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-1KMd-p3j.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-BF5cfdSv.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-CboZ2WJV.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CeCug1U8.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-CYnTsfRX.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-D133FFW5.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-DZ4v2ao7.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-JgnCelkn.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/audit-membership-runtime-Vj66vnhD.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/audit-membership-runtime-vxmoUM1-.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/compat.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/plugin-sdk/index.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/onboard-channels-BxRH3GHj.js | matched "api.telegram.org/bot" | 40 |
| high | Webhook Exfil Endpoint | package/dist/onboard-channels-LctUsr_G.js | matched "api.telegram.org/bot" | 40 |
| high | Credential File Packaged | package/node_modules/bottleneck/.env | package/node_modules/bottleneck/.env | 35 |
| medium | Remote Payload | package/dist/plugin-sdk/compat.cjs | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/plugin-sdk/index.cjs | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/plugin-sdk/telegram.cjs | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/api-BeG0ObSq.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/api-Dx8x1KTs.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/plugin-sdk/compat.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/node_modules/@whiskeysockets/baileys/lib/Utils/generics.js | matched "raw.githubusercontent.com" | 12 |
| medium | Remote Payload | package/dist/plugin-sdk/index.js | matched "api.telegram.org/bot" | 12 |
| medium | Remote Payload | package/dist/plugin-sdk/telegram.js | matched "api.telegram.org/bot" | 12 |
| low | Credential file access | package/dist/plugin-sdk/bluebubbles.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/config-MwkciZcp.cjs | matched ".aws/" | 5 |
| low | Credential file access | package/dist/plugin-sdk/discord.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/feishu.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/googlechat.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/imessage.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/model-auth-B_JJkX-f.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/model-auth-BnapQmUv.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/model-auth-bzThpnlU.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/model-auth-cSvl38A_.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/model-selection-CEic6gL6.cjs | matched ".aws/" | 5 |
| low | Credential file access | package/dist/plugin-sdk/sessions-Codh5CbT.cjs | matched ".aws/" | 5 |
| low | Credential file access | package/dist/plugin-sdk/signal.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/slack.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/telegram.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/tlon.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/twitch.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/voice-call.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/zalo.cjs | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/plugin-sdk/zalouser.cjs | matched "AWS_ACCESS_KEY" | 5 |
Manifest
Package metadata
Scripts1
testnode scripts/ocr.js --help
Dependencies1
tesseract.js^7.0.0