Package Instance
Lookup for vulnerable packages by Package URL.
GET /api/packages/978045?format=api
{ "url": "http://public2.vulnerablecode.io/api/packages/978045?format=api", "purl": "pkg:npm/%40grackle-ai/powerline@0.50.1", "type": "npm", "namespace": "@grackle-ai", "name": "powerline", "version": "0.50.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/360211?format=api", "vulnerability_id": "VCID-9usa-tce6-kfhj", "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/375297?format=api", "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-9usa-tce6-kfhj" } ], "fixing_vulnerabilities": [], "risk_score": "3.1", "resource_url": "http://public2.vulnerablecode.io/packages/pkg:npm/%2540grackle-ai/powerline@0.50.1" }