{"url":"http://public2.vulnerablecode.io/api/packages/995144?format=json","purl":"pkg:npm/%40grackle-ai/powerline@0.38.1","type":"npm","namespace":"@grackle-ai","name":"powerline","version":"0.38.1","qualifiers":{},"subpath":"","is_vulnerable":true,"next_non_vulnerable_version":"0.70.1","latest_non_vulnerable_version":"0.70.1","affected_by_vulnerabilities":[{"url":"http://public2.vulnerablecode.io/api/vulnerabilities/91898?format=json","vulnerability_id":"VCID-qcqs-njxc-kbg1","summary":"@grackle-ai/powerline Runs Without Authentication by Default\n### Impact\n\nWhen `--token` is not provided and `GRACKLE_POWERLINE_TOKEN` is not set, the PowerLine gRPC server runs with **zero authentication**. A warning is logged (`\"NO AUTH (development only)\"`) but nothing prevents deployment in this state. Any client that can reach the PowerLine port can spawn agent sessions, access credential tokens, and execute code.\n\nThe default binding is `127.0.0.1` (loopback only), which limits exposure to the local machine. However, if PowerLine is accidentally exposed on a network (e.g., in a container or via port forwarding), the impact is critical.\n\n**Affected code:**\n- `packages/powerline/src/index.ts:46` — token defaults to empty string\n- `packages/powerline/src/index.ts:63-76` — auth interceptor is only added when token is truthy\n\n### Patches\n\n0.70.1\n\n**Fix:** Require an explicit `--no-auth` flag to run without authentication, rather than defaulting to no auth when the token is empty. Throw an error if starting without a token and without `--no-auth`.\n\n### Workarounds\n\nAlways provide `--token` or set `GRACKLE_POWERLINE_TOKEN` when starting PowerLine. The Grackle server does this automatically when managing PowerLine lifecycle.\n\n### Resources\n\n- CWE-306: Missing Authentication for Critical Function\n- File: `packages/powerline/src/index.ts`","references":[{"reference_url":"https://github.com/nick-pape/grackle","reference_id":"","reference_type":"","scores":[{"value":"6.3","scoring_system":"cvssv4","scoring_elements":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"},{"value":"MODERATE","scoring_system":"generic_textual","scoring_elements":""}],"url":"https://github.com/nick-pape/grackle"},{"reference_url":"https://github.com/nick-pape/grackle/security/advisories/GHSA-xq7h-vwjp-5vrh","reference_id":"","reference_type":"","scores":[{"value":"MODERATE","scoring_system":"cvssv3.1_qr","scoring_elements":""},{"value":"6.3","scoring_system":"cvssv4","scoring_elements":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"},{"value":"MODERATE","scoring_system":"generic_textual","scoring_elements":""}],"url":"https://github.com/nick-pape/grackle/security/advisories/GHSA-xq7h-vwjp-5vrh"},{"reference_url":"https://github.com/advisories/GHSA-xq7h-vwjp-5vrh","reference_id":"GHSA-xq7h-vwjp-5vrh","reference_type":"","scores":[{"value":"MODERATE","scoring_system":"cvssv3.1_qr","scoring_elements":""}],"url":"https://github.com/advisories/GHSA-xq7h-vwjp-5vrh"}],"fixed_packages":[{"url":"http://public2.vulnerablecode.io/api/packages/114401?format=json","purl":"pkg:npm/%40grackle-ai/powerline@0.70.1","is_vulnerable":false,"affected_by_vulnerabilities":[],"resource_url":"http://public2.vulnerablecode.io/packages/pkg:npm/%2540grackle-ai/powerline@0.70.1"}],"aliases":["GHSA-xq7h-vwjp-5vrh"],"risk_score":3.1,"exploitability":"0.5","weighted_severity":"6.2","resource_url":"http://public2.vulnerablecode.io/vulnerabilities/VCID-qcqs-njxc-kbg1"}],"fixing_vulnerabilities":[],"risk_score":"3.1","resource_url":"http://public2.vulnerablecode.io/packages/pkg:npm/%2540grackle-ai/powerline@0.38.1"}