Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as support.manage_tickets staff
-
DeliveryStore JS payload via note_create endpoint
-
ExploitAdmin opens ticket notes list
-
ExecutionScript runs in viewer's session
-
ImpactSteal CSRF token, perform admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a FOSSBilling staff account with the support.manage_tickets permission to reach admin/support/note_create and plant a note (PR:L - not remote-unauthenticated). Exploitation then requires a second staff member to open that specific ticket's notes from the admin ticket list, which is the only vulnerable rendering path (UI:A). Limiting factors: only the admin ticket list is affected because mod_support_tickets.html.twig renders notes via innerHTML; the ticket detail page (mod_support_ticket.html.twig) is safe due to Twig autoescaping. Impact is maximized only when the viewer is a high-privileged account such as a Super Administrator. Affected default configurations are versions 0.1.0 through 0.8.8; no non-default setting is required to trigger it. Workarounds per the vendor: there is no complete fix without upgrading to 0.8.9; administrators can audit and remove notes containing HTML from the support_ticket_note table and revoke support.manage_tickets from staff groups that do not need it. |
| Impact | This is a genuine but access-gated priority rather than an internet-facing emergency. The CVSS 4.0 base score is 8.4 (High) with AV:N/AC:L/AT:N, but two metrics constrain real-world risk: PR:L means the attacker must already hold a staff account carrying the support.manage_tickets permission, and UI:A (passive/active user interaction) means the payload only fires when another staff member opens that ticket's notes from the admin ticket list. The vuln.today decision label is 'this_week', which aligns with a serious-but-not-drop-everything posture. No EPSS probability, no CISA KEV listing, and no PoC/exploit reference are present in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the 8.4 is driven by high confidentiality and integrity impact (VC:H/VI:H) via privilege inheritance, not by exploitation signals. The standout risk factor is privilege escalation potential: a low-privileged staff member's payload executes with the viewing staff member's session, up to a Super Administrator, effectively turning a limited support role into full admin control. Net: a real priority for any multi-staff FOSSBilling deployment on 0.1.0-0.8.8, tempered by the authenticated-insider prerequisite and the absence of exploitation telemetry (EPSS/KEV both absent, so widespread opportunistic exploitation is not indicated). |
| Exploit ScenarioDerived | A malicious or compromised staff member who holds only the support.manage_tickets permission creates a support ticket note containing a JavaScript payload via the admin/support/note_create endpoint. When a higher-privileged staff member - ideally a Super Administrator - later opens that ticket's notes from the admin ticket list, the admin UI renders the note through innerHTML and the script runs in the victim's authenticated session, reading the CSRF token and issuing admin API calls on their behalf. No public exploit is identified in the sources, but the advisory documents the exact vulnerable code path (div.innerHTML = entry.note) and the payload fires automatically as soon as the ticket_get response is parsed, without the victim interacting with the notes dialog. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
Stored cross-site scripting in FOSSBilling 0.1.0 through 0.8.8 lets an authenticated staff member holding only the support.manage_tickets permission plant HTML or JavaScript in a support ticket note via admin/support/note_create; the note is persisted unsanitized and later written into the DOM with innerHTML by the admin ticket list template. The payload executes in the browser session of any staff member who opens that ticket's notes, including a Super Administrator, allowing CSRF-token theft, exfiltration of accessible client and invoice data, and any administrative action the viewer's account permits. The vendor-released patch is 0.8.9; no public exploit code or confirmed active exploitation was identified at time of analysis, and the vendor notes there is no complete workaround without patching.
RemediationAI
Vendor-released patch: 0.8.9. Upgrade FOSSBilling 0.1.0 through 0.8.8 to 0.8.9 or later, which sanitizes the note parameter with Tools::sanitizePlainText() on creation, rejects notes that become empty after sanitization, and renders notes with textContent instead of innerHTML; the same release hardens the Massmailer preview inside a sandboxed iframe. The vendor states there is no complete workaround without patching, but lists two compensating measures with their trade-offs: audit the support_ticket_note table and delete any notes containing HTML markup, since a payload can only arrive through the notes feature, and revoke the support.manage_tickets permission from staff groups that do not need it, at the cost of those staff no longer being able to manage tickets. Because the injected code executes with the viewing staff member's session and can read that page's CSRF token, administrators who suspect exploitation should also treat Super Administrator sessions as potentially compromised. Details and patch references: https://github.com/FOSSBilling/FOSSBilling/security/advisories/GHSA-493h-fvcx-6q62 and https://github.com/FOSSBilling/FOSSBilling/releases/tag/0.8.9.
Affected VersionsENISA
Affected Packages
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
The flaw is CWE-79 (improper neutralization of input during web page generation), specifically a stored XSS in a PHP/Twig application. The write path is src/modules/Support/Api/Admin.php::note_create(), which passed the note parameter directly to Service::noteCreate() and stored it unmodified in the support_ticket_note database table, unlike sibling handlers ticket_update() and ticket_message_update() which route staff text through Tools::sanitizeContent() and Tools::sanitizeMarkdownContent(). The read path is src/modules/Support/templates/admin/mod_support_tickets.html.twig, where JavaScript fetches the ticket through admin/support/ticket_get and assigns each note with div.innerHTML = entry.note - an unsanitized HTML sink that fires as soon as the response is parsed, with no interaction with the resulting dialog required. The same data is safe on the ticket detail page (mod_support_ticket.html.twig) because Twig autoescaping escapes the value. The rendering pattern dates to 0.1.0, where jQuery .html() reached the same sink, and survived the March 2023 admin UI rework and a December 2025 Support module hardening pass. The upstream fix (PR 4548) applies Tools::sanitizePlainText() to the note on write, rejects notes that are empty after sanitization, and replaces innerHTML with textContent plus white-space: pre-wrap on render; the same PR also moves the Massmailer preview into a sandboxed iframe via srcdoc instead of innerHTML. The CPE cpe:2.3:a:fossbilling:fossbilling:*:*:*:*:*:*:*:* matches the affected release line.
Know when Fossbilling 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Requires an authenticated low-privilege staff account (PR:L) and a victim staff member opening the notes (UI:R); stored XSS executing in another user's session crosses a security boundary (S:C) with high confidentiality and integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
FOSSBilling is an open source billing and client-management platform. From 0.1.0 until 0.8.9, the admin/support/note_create endpoint stores the note parameter without sanitization in the support_ticket_note table, and src/modules/Support/templates/admin/mod_support_tickets.html.twig renders each stored support ticket note through innerHTML in the admin ticket list. A staff user with only the support.manage_tickets permission can store HTML or JavaScript that executes when another staff member opens the ticket notes. The script runs with the viewing staff member's session and privileges, can read a CSRF token and accessible client or invoice data, and can perform administrative actions available to the viewer, including a Super Administrator. The ticket detail page is not affected because its Twig rendering uses autoescaping. This issue is fixed in version 0.8.9.
Technical POC Analysis
CWE-79 (stored cross-site scripting).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-111048 is a stored cross-site scripting vulnerability in FOSSBilling, an open-source billing and support platform, affecting versions 0.1.0 through 0.8.8. The flaw allows a low-privileged staff member with ticket note permissions to inject malicious scripts that execute in the browser sessions of any staff member viewing the ticket, including super administrators, potentially leading to session hijacking, data theft, and unauthorized administrative actions. Leadership should prioritize patching to version 0.8.9 to prevent privilege escalation and data breaches.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
More in Fossbilling
View allAuthorization bypass in FOSSBilling versions 0.5.4 through 0.7.x allows unauthenticated remote attackers to invoke privi
SQL Injection in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated critical severity (CVSS 9.8), this vuln
Server-side template injection in FOSSBilling versions prior to 0.8.0 allows authenticated administrators to execute arb
Unrestricted Upload of File with Dangerous Type in GitHub repository fossbilling/fossbilling prior to 0.5.3. Rated high
Missing Authorization in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated high severity (CVSS 7.5), this
Code Injection in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated high severity (CVSS 7.2), this vulnera
Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 6.5), thi
Cross-site Scripting (XSS) - Reflected in GitHub repository fossbilling/fossbilling prior to 0.5.4. Rated medium severit
Insufficient Session Expiration in GitHub repository fossbilling/fossbilling prior to 0.5.5. Rated critical severity (CV
Business Logic Errors in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium severity (CVSS 5.7), thi
Insufficient Granularity of Access Control in GitHub repository fossbilling/fossbilling prior to 0.5.0. Rated medium sev
Session Fixation in GitHub repository fossbilling/fossbilling prior to 0.5.1. Rated medium severity (CVSS 5.4), this vul
EUVD-2026-115349
NVD
CVE.org
GitHub
Exploit-DB