Vulnerability Description
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.
CVSS Score
HIGH
Related Weaknesses (CWE)
References
- https://github.com/HKUDS/nanobot/security/advisories/GHSA-3f63-vcp3-hvqr
- https://github.com/HKUDS/nanobot/security/advisories/GHSA-3f63-vcp3-hvqr
FAQ
What is CVE-2026-48716?
CVE-2026-48716 is a vulnerability with a CVSS score of 8.7 (HIGH). 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 doc...
How severe is CVE-2026-48716?
CVE-2026-48716 has been rated HIGH with a CVSS base score of 8.7/10. Review the CVSS metrics above for detailed severity breakdown.
Is there a patch for CVE-2026-48716?
Check the references section above for vendor advisories and patch information. Review vendor security bulletins for remediation guidance.