CVE-2026-54053 in Many Notesinfo

Summary

by MITRE • 09/17/2026

Many Notes is a Markdown note-taking web application designed for simplicity. Prior to 0.16.0, the ZIP vault import implemented in app/Actions/ProcessImportedVault.php accepts archive filenames containing parent-directory traversal segments. An authenticated user can write arbitrary files outside the importing user's vault and into other users' vaults, including overwriting existing files. Disguised SVG content can be placed in another user's vault and execute stored cross-site scripting when the victim opens that vault. This issue is fixed in version 0.16.0.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 09/17/2026

The vulnerability identified in Many Notes prior to version 0.16.0 represents a critical security flaw within its ZIP vault import functionality, specifically located in the ProcessImportedVault.php action class. As a Markdown note-taking web application designed for simplicity, Many Notes relies on user-uploaded archives to populate digital vaults with content. The core technical failure stems from an insufficient validation of archive filenames during the extraction process. When processing imported ZIP files, the application fails to sanitize or validate file paths contained within the archive against directory traversal patterns. This oversight allows an authenticated attacker to craft a maliciously structured ZIP file that includes parent-directory traversal segments in its internal file names. By exploiting this lack of path normalization, the attacker can manipulate the destination path where extracted files are written on the server's filesystem.

This technical flaw leads directly to arbitrary file write capabilities outside the intended scope of the importing user's vault. Because the application does not strictly enforce that extraction targets remain within a designated directory boundary, an authenticated user can overwrite existing files or create new ones in locations accessible by other users' vaults. This behavior constitutes a path traversal vulnerability, which is formally categorized under CWE-22: Improper Limitation of a Pathname to a Restricted Directory. The operational impact is severe because it breaks the isolation model between different users' data stores. An attacker does not need administrative privileges; mere authentication as a regular user is sufficient to execute this attack vector against other tenants in the multi-user environment.

The most significant consequence of this vulnerability is the potential for stored cross-site scripting attacks through disguised SVG content. Since Many Notes allows rendering Markdown and potentially embedded media, an attacker can place a maliciously crafted Scalable Vector Graphics file into another user's vault by exploiting the path traversal flaw to write directly into that victim's directory structure. When the targeted user opens their vault in a web browser, the application may render this SVG content without proper sanitization of executable scripts contained within it. This results in stored cross-site scripting, where malicious JavaScript is persisted on the server and executed in the context of any other user who views the compromised file. This aligns with CWE-79: Improper Neutralization of Input During Web Page Generation, commonly known as Cross-Site Scripting (XSS).

From a threat modeling perspective, this vulnerability facilitates unauthorized data manipulation and potential account compromise via session hijacking or credential theft through XSS payloads. In the context of the MITRE ATT&CK framework, this behavior maps to techniques involving file system discovery and persistence mechanisms within web applications. The ability to write arbitrary files allows an attacker to establish persistent access points or inject malicious scripts that survive across sessions until manually removed by a victim or administrator. This undermines the integrity and confidentiality guarantees expected in a secure note-taking application.

To mitigate this vulnerability, it is essential to implement strict path canonicalization before any file system operations are performed on extracted archive contents. Developers should resolve the absolute path of each entry within the ZIP file and verify that the resulting path remains strictly within the designated vault directory for the importing user. Additionally, input validation should reject or sanitize filenames containing traversal sequences such as dot-dot-slash. For SVG files specifically, implementing a robust allowlist approach for allowed tags and attributes, or using dedicated sanitization libraries like HTMLPurifier with strict SVG schemas, can prevent script execution even if malicious content is successfully written to the file system. Upgrading to version 0.16.0 resolves this issue by addressing these fundamental flaws in the import logic.

Responsible

GitHub M

Reservation

06/11/2026

Disclosure

09/17/2026

Moderation

accepted

CPE

ready

EPSS

0.00697

KEV

no

Activities

very low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!