CVE-2026-55105: Joplin: stored XSS via Fountain renderer exposes notes
HIGHJoplin, a note-taking app, has a stored cross-site scripting flaw. Before versions 3.6.15 and 3.7.2, its Fountain code block renderer passes unsanitized HTML into note output, so a malicious note can run script in the viewer. The flaw is network-reachable, needs only low privileges and no user interaction, and has a changed scope (CVSS 7.7). Joplin Server publishes notes with Fountain rendering on by default, so script can reach data in an authenticated browser session if published notes share the server's domain. Exploitation likelihood is low-to-moderate (EPSS 0.5%, around the 60th percentile), it is not in CISA KEV, and no public exploit or Nuclei template exists. It has no direct AI/ML function, so the relevance is limited to teams that keep AI research notes, prompts, or credentials in Joplin. Upgrade desktop, mobile, and Server deployments to 3.6.15 or 3.7.2 or later. Until then, disable Fountain rendering and avoid serving published notes from the same origin as Joplin Server.
What is the risk?
Moderate overall risk. The CVSS is 7.7 because exploitation is simple (network, low complexity, no user interaction) and confidentiality impact is high, but exploitation probability is low (EPSS 0.5%), there is no KEV listing and no public exploit. Exposure is mainly Joplin Server instances that publish notes and share a domain with server content, and clients that open untrusted shared or imported notes with Fountain rendering enabled. AI/ML exposure is indirect: it applies only if sensitive AI-related material such as API keys, prompts, or model research is stored in notes.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
6 stepsUpgrade Joplin desktop, mobile, and Server to 3.6.15 (3.6.x line) or 3.7.2 (3.7.x line) or later.
If patching is delayed, disable Fountain rendering in the Markdown plugin settings on clients and Server.
Serve published notes from a separate origin or domain than the Joplin Server application, so injected script cannot reach server-origin data.
Avoid opening untrusted shared or imported notes, and review recently synced notes for unexpected Fountain code blocks.
Rotate any API keys or secrets stored in notes if suspicious notes were opened.
Add a restrictive Content-Security-Policy on the reverse proxy in front of Joplin Server.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-55105?
Joplin, a note-taking app, has a stored cross-site scripting flaw. Before versions 3.6.15 and 3.7.2, its Fountain code block renderer passes unsanitized HTML into note output, so a malicious note can run script in the viewer. The flaw is network-reachable, needs only low privileges and no user interaction, and has a changed scope (CVSS 7.7). Joplin Server publishes notes with Fountain rendering on by default, so script can reach data in an authenticated browser session if published notes share the server's domain. Exploitation likelihood is low-to-moderate (EPSS 0.5%, around the 60th percentile), it is not in CISA KEV, and no public exploit or Nuclei template exists. It has no direct AI/ML function, so the relevance is limited to teams that keep AI research notes, prompts, or credentials in Joplin. Upgrade desktop, mobile, and Server deployments to 3.6.15 or 3.7.2 or later. Until then, disable Fountain rendering and avoid serving published notes from the same origin as Joplin Server.
Is CVE-2026-55105 actively exploited?
No confirmed active exploitation of CVE-2026-55105 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-55105?
1. Upgrade Joplin desktop, mobile, and Server to 3.6.15 (3.6.x line) or 3.7.2 (3.7.x line) or later. 2. If patching is delayed, disable Fountain rendering in the Markdown plugin settings on clients and Server. 3. Serve published notes from a separate origin or domain than the Joplin Server application, so injected script cannot reach server-origin data. 4. Avoid opening untrusted shared or imported notes, and review recently synced notes for unexpected Fountain code blocks. 5. Rotate any API keys or secrets stored in notes if suspicious notes were opened. 6. Add a restrictive Content-Security-Policy on the reverse proxy in front of Joplin Server.
What systems are affected by CVE-2026-55105?
This vulnerability affects the following AI/ML architecture patterns: Knowledge management and note-taking platforms, Self-hosted web applications (Joplin Server), Developer productivity tooling.
What is the CVSS score for CVE-2026-55105?
CVE-2026-55105 has a CVSS v3.1 base score of 7.7 (HIGH). The EPSS exploitation probability is 0.50%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0036Data from Information RepositoriesCompliance Controls Affected
What are the technical details?
Original Advisory
Joplin is an open source note-taking and to-do application that organises notes and lists into notebooks. Prior to 3.6.15 and 3.7.2, packages/renderer/MdToHtml/rules/fountain.ts passes HTML generated by the vendored fountain.js renderer into note output without sanitizing it. A malicious Fountain code block can therefore execute script when Fountain rendering is enabled in desktop or mobile clients, or when a note is published through Joplin Server where Fountain rendering is enabled by default. The script can read content subsequently loaded in the reused note viewer or, when published notes are served from the same domain as server content, access data available to an authenticated browser in the server origin. This issue is fixed in versions 3.6.15 and 3.7.2.
Exploitation Scenario
An attacker with a low-privilege Joplin Server account, or one who can share a notebook with a victim, creates a note containing a Fountain code block with embedded script. When the victim opens the note, or an authenticated user visits the published note URL on the same domain as the server, the script runs in the viewer or server origin. It reads the content of subsequently viewed notes, such as AI project notes with API keys or prompt designs, and sends it to an attacker-controlled endpoint.
Weaknesses (CWE)
CWE-79Improper Neutralization of Input During Web Page GenerationPrimaryCWE-79Improper Neutralization of Input During Web Page GenerationCWE-79 — Improper Neutralization of Input During Web Page Generation: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Examples of libraries and frameworks that make it easier to generate properly encoded output include Microsoft's Anti-XSS library, the OWASP ESAPI Encoding module, and Apache Wicket.
- [Implementation, Architecture and Design] Understand the context in which your data will be used and the encoding that will be expected. This is especially important when transmitting data between different components, or when generating outputs that can contain multiple encodings at the same time, such as web pages or multi-part mail messages. Study all expected communication protocols and data representations to determine the required encoding strategies. For any data that will be output to another web page, especially any data that was received from external inputs, use the appropriate encoding on all non-alphanumeric characters. Parts of the same output document may require different encodings, which will vary depending on whether the output is in the: etc. Note that HTML Entity Encoding is only appropriate for the HTML body. Consult the XSS Prevention Cheat Sheet [REF-724] for more details on the types of encoding and escaping that are needed. HTML body Element attributes (such as src="XYZ") URIs JavaScript sections Casca
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:NReferences
Timeline
Related Vulnerabilities
CVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data LeakageCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Data ExtractionCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Data ExtractionCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data LeakageCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Data Extraction