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":["[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":["[email protected]"],"fail_on":"high"}'Why flagged
What the scanner saw
Credential file access: matched ".ssh"
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk high · score 275 · status changed
Related candidates
Linked campaigns and clusters
turtle.tech
7 members · evidence strength 84Evidence
Static findings
60 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Credential file access | package/assets/assets/ssh-config-_ykCGR6B.js | matched ".ssh" | 30 |
| medium | Obfuscation Density | package/assets/assets/blade-DVc8C-J4.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/chunk-WL4C6EOR-C5oC_TBi.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/flowDiagram-PKNHOUZH-DKoU7L24.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/freemarker2-DLqz4_VA.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/julia-C8NyazO9.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/php-CDn_0X-4.js | high encoded/escaped-token density | 12 |
| medium | Large Javascript Payload | package/assets/assets/index-Cl9Gy4vs.js | 6635659 bytes | 10 |
| medium | Large Javascript Payload | package/assets/assets/ts.worker-DUVIPRKP.js | 6014929 bytes | 10 |
Show all 60 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Credential file access | package/assets/assets/ssh-config-_ykCGR6B.js | matched ".ssh" | 30 |
| medium | Obfuscation Density | package/assets/assets/blade-DVc8C-J4.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/chunk-WL4C6EOR-C5oC_TBi.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/flowDiagram-PKNHOUZH-DKoU7L24.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/freemarker2-DLqz4_VA.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/julia-C8NyazO9.js | high encoded/escaped-token density | 12 |
| medium | Obfuscation Density | package/assets/assets/php-CDn_0X-4.js | high encoded/escaped-token density | 12 |
| medium | Large Javascript Payload | package/assets/assets/index-Cl9Gy4vs.js | 6635659 bytes | 10 |
| medium | Large Javascript Payload | package/assets/assets/ts.worker-DUVIPRKP.js | 6014929 bytes | 10 |
| low | Obfuscation | package/assets/assets/ara-BRHolxvo.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/blade-DVc8C-J4.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/blockDiagram-WCTKOSBZ-Ds4_MC0T.js | matched "\\u000D" | 3 |
| low | Obfuscation | package/assets/assets/c4Diagram-IC4MRINW-C1os6NTb.js | matched "eVal(" | 3 |
| low | Obfuscation | package/assets/assets/chunk-WL4C6EOR-C5oC_TBi.js | matched "\\u00AA" | 3 |
| low | Obfuscation | package/assets/assets/coffee-Ch7k5sss.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/assets/assets/crystal-tKQVLTB8.js | matched "\\x08" | 3 |
| low | Obfuscation | package/assets/assets/css-DPfMkruS.js | matched "\\uFEFF" | 3 |
| low | Obfuscation | package/assets/assets/css.worker-CWXDKZjk.js | matched "\\x20" | 3 |
| low | Obfuscation | package/assets/assets/cytoscape.esm-DtBltrT8.js | matched "\\u200b" | 3 |
| low | Obfuscation | package/assets/assets/dialog-select-directory-BmhGo7hs.js | matched "\\u0000" | 3 |
| low | Obfuscation | package/assets/draco/gltf/draco_decoder.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/assets/draco/gltf/draco_wasm_wrapper.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/assets/assets/editor.worker-DERb3WoQ.js | matched "\\x20" | 3 |
| low | Obfuscation | package/assets/assets/erDiagram-INFDFZHY-DmuZ1S1z.js | matched "\\u00C0" | 3 |
| low | Obfuscation | package/assets/assets/flowDiagram-PKNHOUZH-DKoU7L24.js | matched "\\u00AA" | 3 |
| low | Obfuscation | package/assets/assets/freemarker2-DLqz4_VA.js | matched "\\u00AA" | 3 |
| low | Obfuscation | package/assets/assets/ghostty-web-DFI9ftn5.js | matched "\\x1B" | 3 |
| low | Obfuscation | package/assets/assets/glimmer-js-Rg0-pVw9.js | matched "\\x08" | 3 |
| low | Obfuscation | package/assets/assets/glimmer-ts-U6CK756n.js | matched "\\x08" | 3 |
| low | Obfuscation | package/assets/assets/hack-CaT9iCJl.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/html-GMplVEZG.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/html.worker-C8-N0mNh.js | matched "\\x20" | 3 |
| low | Obfuscation | package/assets/assets/journeyDiagram-4ABVD52K-Dvm95U5p.js | matched "eVal(" | 3 |
| low | Obfuscation | package/assets/assets/json.worker-B4wBgYVH.js | matched "\\x20" | 3 |
| low | Obfuscation | package/assets/assets/jsonMode-DNVxNWJA.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/assets/assets/julia-C8NyazO9.js | matched "\\x01" | 3 |
| low | Obfuscation | package/assets/assets/less-B1dDrJ26.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/list-CbLd2QpP.js | matched "\\u0300" | 3 |
| low | Obfuscation | package/assets/assets/mermaid.core-DekouHcR.js | matched "\\x1B" | 3 |
| low | Obfuscation | package/assets/assets/move-Bu9oaDYs.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/php-CDn_0X-4.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/puppet-BMWR74SV.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/ruby-BvKwtOVI.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/sankeyDiagram-WA2Y5GQK-7a0tOx42.js | matched "\\u000D" | 3 |
| low | Obfuscation | package/assets/assets/scss-OYdSNvt2.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/sequenceDiagram-2WXFIKYE-CfqOEUPe.js | matched "eVal(" | 3 |
| low | Obfuscation | package/assets/assets/session-C1WGvWnQ.js | matched "\\x1B" | 3 |
| low | Obfuscation | package/assets/assets/sparql-DHaeiCBh.js | matched "\\u00a0" | 3 |
| low | Obfuscation | package/assets/assets/stata-BH5u7GGu.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/stylus-BEDo0Tqx.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/swift-DwJ7jVG9.js | matched "\\u00A1" | 3 |
| low | Obfuscation | package/assets/assets/treemap-KZPCXAKY-CkeXn87D.js | matched "\\u2028" | 3 |
| low | Obfuscation | package/assets/assets/twig-CO9l9SDP.js | matched "\\x7F" | 3 |
| low | Obfuscation | package/assets/assets/typst-DHCkPAjA.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/vb-DgyLZaXg.js | matched "\\u201c" | 3 |
| low | Obfuscation | package/assets/assets/vue-DnHKYNfI.js | matched "\\x00" | 3 |
| low | Obfuscation | package/assets/assets/wasm-CG6Dc4jp.js | matched "atob(" | 3 |
| low | Obfuscation | package/assets/assets/worker-BDowWIry.js | matched "\\uD800" | 3 |
| low | Obfuscation | package/assets/assets/xlsx-editor-slR-Oj8_.js | matched "fromCharCode" | 3 |
| low | Obfuscation | package/bin/cli.mjs | matched "Buffer.from(normalized, \"base64" | 3 |
Manifest
Package metadata
Scripts2
buildbun script/build.tstestbun test
Optional dependencies12
turtlecode-backend-darwin-arm640.3.28turtlecode-backend-darwin-x640.3.28turtlecode-backend-darwin-x64-baseline0.3.28turtlecode-backend-linux-arm640.3.28turtlecode-backend-linux-arm64-musl0.3.28turtlecode-backend-linux-x640.3.28turtlecode-backend-linux-x64-baseline0.3.28turtlecode-backend-linux-x64-baseline-musl0.3.28turtlecode-backend-linux-x64-musl0.3.28turtlecode-backend-windows-arm640.3.28turtlecode-backend-windows-x640.3.28turtlecode-backend-windows-x64-baseline0.3.28