Skip to main content

hashi-vault-js CVE-2026-55100

| EUVDEUVD-2026-51575 HIGH
Relative Path Traversal (CWE-23)
2026-07-31 https://github.com/kyndryl-open-source/hashi-vault-js GHSA-g956-2f74-rmv7
8.7
CVSS 4.0 · Vendor: https://github.com/kyndryl-open-source/hashi-vault-js
Share

Severity by source

Vendor (https://github.com/kyndryl-open-source/hashi-vault-js) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
9.0 CRITICAL

AV:N because attacker reaches the app over the network; AC:H because exploitation requires user input to flow into library calls; S:C because the impacted component (Vault server) is a separate system from the vulnerable library.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (https://github.com/kyndryl-open-source/hashi-vault-js).

CVSS VectorVendor: https://github.com/kyndryl-open-source/hashi-vault-js

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jul 31, 2026 - 17:31 vuln.today
Analysis Generated
Jul 31, 2026 - 17:31 vuln.today
CVE Published
Jul 31, 2026 - 17:03 cve.org
HIGH

DescriptionCVE.org

Summary

The hashi-vault-js library is vulnerable to path traversal and query string injection due to the lack of proper encoding of identifiers in path segments and query strings. This allows attackers to manipulate the request URL and potentially access unintended downstream endpoints or inject malicious parameters if untrusted input is passed to the library.

Details

There are zero calls to encodeURIComponent anywhere in Vault.js. Every identifier (e.g., name, username, group, role, version) provided to the library is concatenated straight into the HTTP URL without URI encoding.

Two vectors can be dynamically confirmed:

  1. Path Traversal: Passing ../../sys/seal as a secret name causes the HTTP client to normalize the path and send the request to /v1/sys/seal instead of the intended Key-Value path.
  2. Query Injection: Passing 1&list=true as a version value injects an extra query parameter into the request payload.

Impact

In applications where Vault identifiers originate from untrusted user input, this allows an unauthenticated attacker to redirect requests to unintended Vault endpoints (including administrative paths under sys/) or otherwise alter the executed query, executing operations within the permissions of the Vault token used by the application.

Patches

This vulnerability has been addressed by wrapping path segments with encodeURIComponent() and safely formatting query strings instead of manual string concatenation. Users should upgrade to a version that includes this fix.

Workarounds

If you cannot immediately update the library, you can mitigate this issue by rigidly validating and sanitizing all user-supplied input before passing it into hashi-vault-js methods. Alternatively, manually encode inputs using encodeURIComponent() before supply them to the library's functions.

Acknowledgements

hashi-vault-js would like to thank Sebastián Alba Vives for reporting this vulnerability.

AnalysisAI

Path traversal and query parameter injection in hashi-vault-js (npm, versions ≤ 0.5.1) allow an attacker who can influence identifiers passed to the library to redirect Vault API requests to arbitrary endpoints - including administrative paths such as /v1/sys/seal - or inject unauthorized query parameters, all executed under the permissions of the application's configured Vault token. The vulnerability arises because Vault.js contains zero calls to encodeURIComponent(), concatenating every caller-supplied identifier directly into HTTP URL strings. Two attack vectors are dynamically confirmed in the GHSA advisory: path traversal via ../../sys/seal as a secret name, and query injection via 1&list=true as a version value. No public standalone exploit tool has been identified and this CVE is not listed in the CISA KEV catalog.

Technical ContextAI

The affected package is hashi-vault-js (CPE: pkg:npm/hashi-vault-js), a Node.js client library that wraps the HashiCorp Vault HTTP API. The root cause is CWE-23 (Relative Path Traversal), compounded by query-string injection through unsafe string concatenation. Vault.js builds every API URL by directly interpolating caller-supplied parameters - secret names, usernames, group names, role names, version numbers - into URL path segments and query strings without invoking encodeURIComponent() or any equivalent sanitization. HTTP clients normalize dot-segment sequences in paths (../../), so a traversal payload resolves outside the intended KV mount point and reaches unintended Vault API namespaces including the privileged sys/ tree. The fix in version 0.5.2, confirmed by PR #66 and commit ea2f760, wraps all path-segment identifiers with encodeURIComponent() and replaces manual query-string concatenation with safe parameter formatting.

RemediationAI

Upgrade hashi-vault-js to version 0.5.2, which resolves both attack vectors by applying encodeURIComponent() to all path-segment identifiers and replacing manual query-string concatenation with safe parameter formatting, as confirmed by PR #66 (https://github.com/kyndryl-open-source/hashi-vault-js/pull/66) and commit ea2f76052d366a08f35f62ef4c12b6a334c91ec2. If an immediate upgrade is not feasible, apply strict allowlist validation before passing any identifier to library methods: reject inputs containing /, ., &, =, ?, or % characters - note that an incomplete allowlist may still leave injection vectors open. Alternatively, manually wrap all caller-supplied identifiers with encodeURIComponent() before passing them to library functions. As a defense-in-depth measure, restrict the application's Vault token to the minimum required paths and capabilities so that even if traversal succeeds, the token cannot reach sensitive sys/ endpoints such as sys/seal or sys/unseal.

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2026-34976 CRITICAL POC
10.0 Apr 02

Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai

CVE-2021-30476 CRITICAL POC
9.8 Apr 22

HashiCorp Terraform’s Vault Provider (terraform-provider-vault) did not correctly configure GCE-type bound labels for Va

CVE-2019-7442 CRITICAL POC
9.8 May 08

An XML external entity (XXE) vulnerability in the Password Vault Web Access (PVWA) of CyberArk Enterprise Password Vault

CVE-2018-20371 CRITICAL POC
9.8 Dec 23

PhotoRange Photo Vault 1.2 appends the password to the URI for authorization, which makes it easier for remote attackers

CVE-2018-9843 CRITICAL POC
9.8 Apr 12

The REST API in CyberArk Password Vault Web Access before 9.9.5 and 10.x before 10.1 allows remote attackers to execute

CVE-2026-54725 CRITICAL POC
9.6 Jul 31

Server-side request forgery in bank-vaults vault-secrets-webhook (<= 1.22.2) lets a low-privileged tenant with ConfigMap

CVE-2026-60104 CRITICAL POC
9.3 Jul 08

Account takeover in self-hosted Bitwarden Server before 2026.6.0 lets a low-privileged organization member steal any oth

CVE-2021-43837 CRITICAL POC
9.1 Dec 16

vault-cli is a configurable command-line interface tool (and python library) to interact with Hashicorp Vault. Rated cri

CVE-2020-16272 CRITICAL POC
9.1 Aug 03

The SRP-6a implementation in Kee Vault KeePassRPC before 1.12.0 is missing validation for a client-provided parameter, w

CVE-2020-16271 CRITICAL POC
9.1 Aug 03

The SRP-6a implementation in Kee Vault KeePassRPC before 1.12.0 generates insufficiently random numbers, which allows re

CVE-2026-53727 HIGH POC
8.9 Jul 09

Server-side request forgery in the Ruby css_parser gem (< 3.0.0) lets a remote unauthenticated attacker force the parsin

Share

CVE-2026-55100 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy