GHSA-pqh8-4pj7-32xx: Critical severity npm/obsidian-tc vulnerability

Published Oct 23, 2026
·
Updated

Impact The Streamable HTTP transport was constructed without enableDnsRebindingProtection/allowedHosts/allowedOrigins and performed no Origin-header validation. With the documented auth.mode: "none" loopback default, a drive-by web page could POST http://127.0.0.1/mcp and receive caller http-local with scopes [""] — full vault read/write — via DNS rebinding / a forged Origin.

Patches Fixed in 1.3.1. Upgrade to >= 1.3.1. The transport now enables DNS-rebinding protection and allowed hosts/origins and returns HTTP 403 on an invalid Origin (per MCP 2025-11-25).

Workarounds Do not expose the HTTP transport with auth.mode: "none"; require JWT auth, or bind to a non-loopback interface behind a proxy that validates Origin.

Affected Software

1 affected componentFixes available
npm/obsidian-tc<1.3.1
1.3.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/obsidian-tc to a version that resolves this vulnerability.

    Fixed in 1.3.1
  2. Upgrade

    Upgrade Streamable HTTP transport to a version that resolves this vulnerability.

    Fixed in 1.3.1
  3. Configuration

    Do not expose the HTTP transport with auth.mode set to none; require JWT authentication.

    HTTP transport auth.mode = JWT
  4. Compensating control

    If JWT authentication is not used, bind the HTTP transport to a non-loopback interface behind a proxy that validates the Origin header.

Event History

Oct 23, 2026
Advisory Published
via GitHub·06:29 PM
Data Sourced
via GitHub·06:29 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Who is exposed to this issue?

Instances using the Streamable HTTP transport with the documented loopback default and auth.mode set to "none" are exposed. In that configuration, a malicious web page can target the local MCP endpoint.

2

What does an attacker need to exploit it?

An attacker needs a victim to visit a drive-by web page capable of reaching http://127.0.0.1/mcp through DNS rebinding or a forged Origin. No authentication is required when auth.mode is "none".

3

What access could successful exploitation provide?

Successful exploitation can obtain the http-local caller with wildcard scopes ["*"], allowing full vault read and write access.

4

What should be done if upgrading is not immediately possible?

Do not expose the HTTP transport with auth.mode set to "none". Require JWT authentication, or bind to a non-loopback interface behind a proxy that validates the Origin header.

5

How does the fixed release block this attack?

Version 1.3.1 enables DNS-rebinding protection and configures allowed hosts and origins. It also returns HTTP 403 for an invalid Origin header.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203