Vulnerabilities in pkg:npm/line-desktop-mcp

PACKAGE
Advisory Identifier: GHSA-4hf8-5mjm-rfgq
Advisory Summary

CVE-2026-49357 is a HIGH streamable http mode exposes line vulnerability (CWE-306: Missing Authentication for Critical Function) affecting Line desktop mcp libraries in the npm ecosystem. The issue involves streamable http mode exposes line desktop read/send tools without mcp authentication. Remediation is available by upgrading affected packages to version 1.1.2.

1 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:npm/line-desktop-mcp

1 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:npm/line-desktop-mcp. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-4hf8-5mjm-rfgq CVE-2026-49357 HIGH Streamable HTTP mode exposes LINE Desktop read/send tools without MCP authentication

CVE-2026-49357 at a Glance

CVE Identifier CVE-2026-49357
GHSA Identifier GHSA-4hf8-5mjm-rfgq
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-306: Missing Authentication for Critical Function
Affected Product Line desktop mcp
Package Ecosystem npm
Published Date
Last Updated

How to Fix CVE-2026-49357

To remediate this vulnerability, upgrade all affected Line desktop mcp dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

line-desktop-mcp fixed: 1.1.2
npm install line-desktop-mcp@1.1.2
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

npm ls line-desktop-mcp

How to Check if You Are Affected

To determine whether your Node.js application is affected by CVE-2026-49357, inspect your project dependencies using npm:

npm ls line-desktop-mcp

Analyze the terminal output to locate any version of Line desktop mcp in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.1.2), your application is affected.

Note: The npm ls line-desktop-mcp 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 Line desktop mcp, 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

# Streamable HTTP mode exposes LINE Desktop read/send tools without MCP authentication ## Summary `line-desktop-mcp` supports a `--http-mode` Streamable HTTP transport for use with clients such as n8n. In this mode the server binds to `0.0.0.0` and exposes the MCP `/mcp` endpoint without an MCP-layer authentication check. Any network client that can reach the port can initialize a session, list tools, and call tools that read LINE Desktop chat history or send LINE messages through the already logged-in desktop application. This is High for deployments where the HTTP port is reachable beyond the local host, because the server acts with the user authority of the logged-in LINE Desktop session. It is lower if the listener is strictly firewalled to trusted local clients. ## Affected version Repository: `dtwang/line-desktop-mcp` Current source checked: `fbed0d2d3048e63f48a356a1267ed8ec5e78f3ae` on `main`, committed 2026-05-14. Published npm package checked: `line-desktop-mcp@1.1.1`. ## Source evidence `README.md` documents Streamable HTTP mode: ```text npx line-desktop-mcp@latest --http-mode --port 3000 ``` The same README documents MCP endpoints at `/mcp` and explains that this mode is intended for clients such as n8n. `src/server.js` registers LINE Desktop tools including: - `get_line_chatroom_history_default` - `get_line_chatroom_history_long` - `get_line_chatroom_history_short` - `send_message_manual` - `send_message_auto` Those tool handlers call into the desktop automation layer: `getChatHistory(...)` and `sendChatMessage(...)`. In HTTP mode, `src/server.js` creates an Express app and Streamable HTTP transport, accepts POSTs to `/mcp`, creates sessions, connects the transport to the MCP server, and calls `transport.handleRequest(...)`. I did not find an authentication or bearer-token check before session creation or tool invocation. The listener is explicitly network-bound: ```js app.listen(port, 0.0.0.0, () => { console.error(`LINE Desktop MCP Server running on Streamable HTTP mode`); console.error(` Local: http://127.0.0.1:${port}${endpoint}`); console.error(` Network: http://0.0.0.0:${port}${endpoint}`); }); ``` ## Vulnerability chain 1. A user starts the server with `--http-mode --port 3000`. 2. The server binds on `0.0.0.0:3000`, not only loopback. 3. A network client reaches `/mcp` and sends the normal MCP initialize request. 4. The server creates a Streamable HTTP session without authenticating the caller. 5. The caller can list and invoke LINE Desktop tools. 6. Tool calls execute through the logged-in LINE Desktop application on the user workstation. ## Impact An unauthenticated network client can read LINE chat history through the MCP history tools and can send LINE messages through the send-message tools, including `send_message_auto` when the tool call requests immediate sending. The attacker does not need LINE credentials or a LINE API token; they only need network reachability to the MCP HTTP port. The practical impact is disclosure of private LINE conversations and unauthorized messages sent as the logged-in desktop user. ## Suggested fix Require authentication before accepting Streamable HTTP MCP sessions or tool calls. For example: - require a bearer token or local secret when `--http-mode` is used; - bind HTTP mode to `127.0.0.1` by default unless the operator explicitly opts into network exposure; - refuse to start `0.0.0.0` HTTP mode without authentication; - document that `host.docker.internal` / n8n setups must still authenticate to the MCP server. A defense-in-depth improvement would also keep `send_message_auto` disabled unless explicitly enabled by a server-side flag, because it converts MCP tool access into immediate message sending as the desktop user.

CVE-2026-49357 Affected Line desktop mcp Versions

1 component(s)
Fixed Versions:
1.1.2
Product / Package Ecosystem Affected Versions Fixed Version
line-desktop-mcp
npm
< 1.1.2
1.1.2

References

Frequently Asked Questions

What is CVE-2026-49357?
CVE-2026-49357 is a security vulnerability in Line desktop mcp involving Streamable HTTP mode exposes LINE Desktop read/send tools without MCP authentication under CWE-306: Missing Authentication for Critical Function.
Which Line desktop mcp versions are affected?
Affected versions include releases prior to 1.1.2 across affected packages: line-desktop-mcp.
What version fixes CVE-2026-49357?
Upgrading to 1.1.2 (or the latest patched release for your respective branch) resolves the vulnerability.
Is line-desktop-mcp affected?
Yes, line-desktop-mcp is affected in releases prior to 1.1.2. Upgrade your dependency to 1.1.2 or later.
What CWE is associated with CVE-2026-49357?
CVE-2026-49357 is classified under CWE-306: Missing Authentication for Critical Function (The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.).
How can I check npm dependencies for CVE-2026-49357?
Run the dependency tree command: 'npm ls line-desktop-mcp'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-4hf8-5mjm-rfgq",
  "modified" : "2026-06-26T21:50:50Z",
  "published" : "2026-06-26T21:50:49Z",
  "aliases" : [ "CVE-2026-49357" ],
  "summary" : "Streamable HTTP mode exposes LINE Desktop read/send tools without MCP authentication",
  "details" : "# Streamable HTTP mode exposes LINE Desktop read/send tools without MCP authentication\n\n## Summary\n\n`line-desktop-mcp` supports a `--http-mode` Streamable HTTP transport for use with clients such as n8n. In this mode the server binds to `0.0.0.0` and exposes the MCP `/mcp` endpoint without an MCP-layer authentication check. Any network client that can reach the port can initialize a session, list tools, and call tools that read LINE Desktop chat history or send LINE messages through the already logged-in desktop application.\n\nThis is High for deployments where the HTTP port is reachable beyond the local host, because the server acts with the user authority of the logged-in LINE Desktop session. It is lower if the listener is strictly firewalled to trusted local clients.\n\n## Affected version\n\nRepository: `dtwang/line-desktop-mcp`\n\nCurrent source checked: `fbed0d2d3048e63f48a356a1267ed8ec5e78f3ae` on `main`, committed 2026-05-14.\n\nPublished npm package checked: `line-desktop-mcp@1.1.1`.\n\n## Source evidence\n\n`README.md` documents Streamable HTTP mode:\n\n```text\nnpx line-desktop-mcp@latest --http-mode --port 3000\n```\n\nThe same README documents MCP endpoints at `/mcp` and explains that this mode is intended for clients such as n8n.\n\n`src/server.js` registers LINE Desktop tools including:\n\n- `get_line_chatroom_history_default`\n- `get_line_chatroom_history_long`\n- `get_line_chatroom_history_short`\n- `send_message_manual`\n- `send_message_auto`\n\nThose tool handlers call into the desktop automation layer: `getChatHistory(...)` and `sendChatMessage(...)`.\n\nIn HTTP mode, `src/server.js` creates an Express app and Streamable HTTP transport, accepts POSTs to `/mcp`, creates sessions, connects the transport to the MCP server, and calls `transport.handleRequest(...)`. I did not find an authentication or bearer-token check before session creation or tool invocation.\n\nThe listener is explicitly network-bound:\n\n```js\napp.listen(port, 0.0.0.0, () => {\n  console.error(`LINE Desktop MCP Server running on Streamable HTTP mode`);\n  console.error(`  Local:   http://127.0.0.1:${port}${endpoint}`);\n  console.error(`  Network: http://0.0.0.0:${port}${endpoint}`);\n});\n```\n\n## Vulnerability chain\n\n1. A user starts the server with `--http-mode --port 3000`.\n2. The server binds on `0.0.0.0:3000`, not only loopback.\n3. A network client reaches `/mcp` and sends the normal MCP initialize request.\n4. The server creates a Streamable HTTP session without authenticating the caller.\n5. The caller can list and invoke LINE Desktop tools.\n6. Tool calls execute through the logged-in LINE Desktop application on the user workstation.\n\n## Impact\n\nAn unauthenticated network client can read LINE chat history through the MCP history tools and can send LINE messages through the send-message tools, including `send_message_auto` when the tool call requests immediate sending. The attacker does not need LINE credentials or a LINE API token; they only need network reachability to the MCP HTTP port.\n\nThe practical impact is disclosure of private LINE conversations and unauthorized messages sent as the logged-in desktop user.\n\n## Suggested fix\n\nRequire authentication before accepting Streamable HTTP MCP sessions or tool calls. For example:\n\n- require a bearer token or local secret when `--http-mode` is used;\n- bind HTTP mode to `127.0.0.1` by default unless the operator explicitly opts into network exposure;\n- refuse to start `0.0.0.0` HTTP mode without authentication;\n- document that `host.docker.internal` / n8n setups must still authenticate to the MCP server.\n\nA defense-in-depth improvement would also keep `send_message_auto` disabled unless explicitly enabled by a server-side flag, because it converts MCP tool access into immediate message sending as the desktop user.",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "npm",
      "name" : "line-desktop-mcp"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.1.2"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.1.1"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/dtwang/line-desktop-mcp/security/advisories/GHSA-4hf8-5mjm-rfgq"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-49357"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/dtwang/line-desktop-mcp/commit/680617894981ea93f8f6ceb51ecde7519754d501"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/dtwang/line-desktop-mcp"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-306", "CWE-862" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-06-26T21:50:49Z",
    "nvd_published_at" : "2026-06-19T14:16:23Z"
  }
}