Skip to main content

Many Notes CVE-2026-54053

| EUVDEUVD-2026-82335 CRITICAL
Path Traversal (CWE-22)
2026-09-17 security-advisories@github.com
9.6
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as any user
  2. Delivery
    Craft ZIP with '../' entry names
  3. Exploit
    Import archive triggering path traversal
  4. Execution
    Overwrite target file in victim's vault
  5. Persist
    Victim opens vault runs SVG payload
  6. Impact
    Session/data compromise via stored XSS

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account on the Many Notes instance (PR:L) and use of the ZIP vault import feature in app/Actions/ProcessImportedVault.php, which in versions prior to 0.16.0 fails to reject archive entry filenames containing parent-directory ('..') traversal segments. The arbitrary cross-user file write/overwrite needs no victim interaction. The stored-XSS confidentiality impact is additionally LIMITED by requiring the victim user to subsequently open the vault into which the disguised SVG was planted, and by the browser rendering that SVG. Multi-user deployments are the realistic target, since the value of the flaw is writing into vaults owned by other users.

Impact

This is a genuinely high-severity flaw, though the vendor CVSS 9.6 is somewhat inflated. The vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N) reflects a low-complexity, low-privilege (any authenticated user) attack with a scope change because writes land in OTHER users' vaults. The core, unconditional primitive is cross-user arbitrary file write/overwrite via ZIP path traversal - that solidly justifies I:H and S:C. The C:H (full confidentiality) rating is more aggressive: confidentiality loss occurs only through the stored-SVG XSS, which requires the victim to open the poisoned vault (effectively user interaction the vendor did not price into UI:N), so C:H should really be C:L and gated. No EPSS score, KEV listing, or public POC is provided in the input, so exploitation status is 'no public exploit identified at time of analysis' - the 9.6 is a severity signal, not evidence of active exploitation. The confirming code diff (rejecting entries whose path pieces contain '..') makes the vulnerability mechanism unambiguous, but the tiny real-world footprint of this self-hosted app keeps aggregate risk moderate despite the high score.

Exploit ScenarioDerived

An authenticated Many Notes user crafts a ZIP archive whose entry filenames contain '../' traversal segments pointing into another user's vault directory, then uses the vault import feature. The malicious ZIP writes or overwrites files - including a disguised SVG containing script - into the victim's vault, and the payload fires as stored XSS in the victim's session when they next open that vault. No public exploit code is identified in the provided data, but the fixing commit clearly reveals the traversal mechanism.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.7% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 17, 2026

Authenticated users of Many Notes versions prior to 0.16.0 can exploit the ZIP vault import routine to write or overwrite arbitrary files outside their own vault and into other users' vaults, because archive entry names containing parent-directory ('..') segments are not rejected. The same primitive lets an attacker plant a disguised SVG file in a victim's vault that executes stored cross-site scripting once the victim opens that vault, so the flaw matters primarily on multi-user deployments. The integrity impact of the cross-user file write is unconditional and requires no victim interaction, while the confidentiality impact of the stored XSS is limited by the need for the victim to open the affected vault and for the browser to render the SVG; no public exploit code has been identified at time of analysis, and there is no confirmed active exploitation (no CISA KEV listing).

RemediationAI

Upgrade Many Notes to 0.16.0 or later, which is the vendor-released patch for this issue and validates archive entry names by normalizing backslashes and rejecting any entry containing a '..' path component; the fix commit (1b3288fa9671002e72e38b7fcd5d226673ba0cae) and release (v0.16.0) are referenced in the GitHub advisory GHSA-wg8j-9c2g-xh6r. Where immediate upgrade is not possible, compensating controls should target the import feature directly: disable ZIP vault import for non-administrative accounts (this removes the attack primitive entirely but also removes a legitimate bulk-import workflow for regular users), or restrict instance membership to trusted, single-tenant users so cross-user vault writes have no victim to target (trade-off is loss of multi-tenant usefulness). Because the stored-XSS path depends on the application serving attacker-supplied SVG content from another user's vault, operators can also tighten the Content-Security-Policy and force SVG assets to be served with Content-Disposition: attachment or from a sandboxed origin; this reduces but does not eliminate script execution risk and can break legitimate inline-image rendering in notes. Additionally, review existing vaults for unexpected SVG files or files outside expected note types, and validate that no cross-vault write artifacts remain after patching.

Affected VersionsENISA

many-notes < 0.16.0

Affected Packages

euvd many_notes fix: 0.16.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Many Notes is a PHP Markdown note-taking web application; the vulnerable code path is the ZIP vault importer in app/Actions/ProcessImportedVault.php, which extracts archive entries while trusting the file names supplied inside the user-uploaded ZIP. This is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal) rooted in the absence of canonicalization or rejection of '..' path segments, allowing the extracted write target to escape the importing user's vault directory. The upstream fix normalizes backslashes to forward slashes, splits the entry name on '/', and skips any entry whose components include '..', which closes the traversal primitive at its source rather than relying on post-hoc path checks. The second-order consequence is stored XSS: because SVG is treated as an importable content type, an attacker can place an SVG carrying script content into another user's vault, which the application then serves and the victim's browser renders in the application origin, resulting in script execution in the victim's session (scope change, S:C). CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:N reflects network reachability at low complexity, but authentication is required (PR:L) to reach the import feature, and the confidentiality effect is constrained by the victim-action dependency noted above.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 9.6 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 8.5 HIGH

Any authenticated user (PR:L) writes into other users' vaults with no interaction (S:C, I:H); confidentiality is only C:L because it depends on the victim later opening the poisoned vault to trigger XSS.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

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

Lifecycle Timeline

2
Patch available
Sep 17, 2026 - 18:19 EUVD
CVE Published
Sep 17, 2026 - 18:16 cve.org
CRITICAL 9.6

DescriptionCVE.org

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.

Technical POC Analysis

The bug is CWE-22: Improper Limitation of a Pathname to a Restricted Directory.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Many Notes, a collaborative note-taking application, contains a critical vulnerability that allows an attacker to write files into other users' vaults, enabling data corruption and stored cross-site scripting that can compromise user sessions. This affects multi-user deployments where data integrity and isolation between users are essential, and successful exploitation could lead to unauthorized access to sensitive notes and further compromise of user accounts. Leadership should prioritize remediation given the critical severity and potential for lateral movement within the application.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 48% exploitable
Prevalence
Rare
obscure small open-source self-hosted note app, tiny deployment footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +48
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

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