Skip to main content

Nanobot CVE-2026-48716

| EUVDEUVD-2026-37933 HIGH
Path Traversal (CWE-22)
2026-06-18 GitHub_M
8.7
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.7 HIGH
AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:H
vuln.today AI
8.9 HIGH

Network-reachable WhatsApp bridge with no auth (AV:N/PR:N/UI:N); AC:H because attacker needs bridge enabled and a viable writable target path; scope changes to host filesystem; C:L since written files may be readable, I:H/A:H from write-anywhere.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jun 18, 2026 - 20:02 vuln.today
CVE Published
Jun 18, 2026 - 18:46 cve.org
HIGH 8.7

DescriptionCVE.org

nanobot is a personal AI assistant. In versions 0.1.5.post3 and prior, the WhatsApp bridge in bridge/src/whatsapp.ts constructs a filesystem path using the fileName field from an incoming WhatsApp document message without sanitization. The WhatsApp bridge downloads media attachments and writes them to disk using a filename derived from the sender's message via documentMessage.fileName, which is concatenated with a prefix and its raw value is passed directly to path.join(mediaDir, outFilename). Node.js path.join resolves .. components, allowing an attacker to escape the intended media/ directory by sending a document with a crafted fileName such as ../../../.ssh/authorized_keys. Because the attacker also controls the file content (the downloaded buffer), this is a write-anywhere primitive - both path and content are attacker-controlled. A fix for this issue is planned for version 0.1.5.post4.

AnalysisAI

Arbitrary file write in HKUDS Nanobot's WhatsApp bridge (versions 0.1.5.post3 and prior) allows remote unauthenticated attackers to write attacker-controlled content to arbitrary filesystem locations by sending a WhatsApp document message with a path-traversal sequence in its fileName field. Because both the destination path and the file content are attacker-controlled, exploitation yields a write-anywhere primitive that can be escalated to remote code execution (e.g., by overwriting authorized_keys or shell startup files). No public exploit identified at time of analysis; a fix is planned for version 0.1.5.post4.

Technical ContextAI

Nanobot is a personal AI assistant by HKUDS that exposes a WhatsApp bridge implemented in TypeScript/Node.js (bridge/src/whatsapp.ts). The bridge receives incoming WhatsApp messages, downloads any attached media via the Baileys-style documentMessage handling, and persists the binary buffer to disk. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory): the code concatenates a prefix with documentMessage.fileName and feeds the unsanitized string into Node.js's path.join(mediaDir, outFilename). Contrary to a common misconception, path.join does NOT clamp the result inside its first argument - it normalizes '..' segments, so a fileName like '../../../.ssh/authorized_keys' resolves outside mediaDir. The CPE cpe:2.3:a:hkuds:nanobot:*:*:* confirms all versions of the hkuds/nanobot application up to and including 0.1.5.post3 are affected.

RemediationAI

No vendor-released patch identified at time of analysis; the vendor states a fix is planned for version 0.1.5.post4, so upgrade to that release as soon as it ships (track https://github.com/HKUDS/nanobot/security/advisories/GHSA-3f63-vcp3-hvqr). Until the patched release is available, disable the WhatsApp bridge entirely if it is not in active use (eliminates the attack surface but breaks WhatsApp integration), or apply a local patch in bridge/src/whatsapp.ts to sanitize documentMessage.fileName before path construction - strip directory separators and '..' segments, then validate that path.resolve(mediaDir, outFilename) still starts with path.resolve(mediaDir) and reject otherwise (low side effects beyond rejecting unusual filenames). As defense in depth, run the Nanobot process as an unprivileged user with no write access to SSH keys, cron directories, or shell rc files, ideally inside a container with a read-only root filesystem and a dedicated writable media volume.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

CVE-2026-48716 vulnerability details – vuln.today

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