GHSA-xq7h-vwjp-5vrh: @grackle ai/powerline @grackle-ai/powerline Runs Without Authentication By Vulnerability
MODERATEGHSA-xq7h-vwjp-5vrh is a MODERATE @grackle-ai/powerline runs without authentication by vulnerability (CWE-306: Missing Authentication for Critical Function) affecting @grackle ai/powerline libraries in the npm ecosystem. The issue involves @grackle-ai/powerline runs without authentication by default. Remediation is available by upgrading affected packages to version 0.70.1.
GHSA-xq7h-vwjp-5vrh at a Glance
How to Fix GHSA-xq7h-vwjp-5vrh
To remediate this vulnerability, upgrade all affected @grackle ai/powerline dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install @grackle-ai/powerline@0.70.1
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls @grackle-ai/powerline
How to Check if You Are Affected
To determine whether your Node.js application is affected by GHSA-xq7h-vwjp-5vrh, inspect your project dependencies using npm:
npm ls @grackle-ai/powerline
Analyze the terminal output to locate any version of @grackle ai/powerline in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 0.70.1), your application is affected.
Note: The npm ls @grackle-ai/powerline command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-306: Missing Authentication for Critical Function, where the product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources. In @grackle ai/powerline, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-xq7h-vwjp-5vrh Affected @grackle ai/powerline Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
@grackle-ai/powerline
|
npm |
< 0.70.1
|
0.70.1
|
References
Frequently Asked Questions
What is GHSA-xq7h-vwjp-5vrh?
Which @grackle ai/powerline versions are affected?
What version fixes GHSA-xq7h-vwjp-5vrh?
Is @grackle-ai/powerline affected?
What CWE is associated with GHSA-xq7h-vwjp-5vrh?
How can I check npm dependencies for GHSA-xq7h-vwjp-5vrh?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-xq7h-vwjp-5vrh",
"modified" : "2026-03-25T17:30:46Z",
"published" : "2026-03-25T17:30:46Z",
"aliases" : [ ],
"summary" : "@grackle-ai/powerline Runs Without Authentication by Default",
"details" : "### 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`",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "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"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "@grackle-ai/powerline"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "0.70.1"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 0.70.0"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/nick-pape/grackle/security/advisories/GHSA-xq7h-vwjp-5vrh"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/nick-pape/grackle"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-306" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-25T17:30:46Z",
"nvd_published_at" : null
}
}