CVE-2026-24746
Stored XSS in InvoicePlane 1.7.0 Edit Quotes Allows Admin Data Compromise
Publication date: 2026-02-18
Last updated on: 2026-02-20
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| invoiceplane | invoiceplane | 1.7.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | 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. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
CVE-2026-24746 is a Stored Cross-Site Scripting (XSS) vulnerability found in InvoicePlane version 1.7.0, specifically in the Edit Quotes functionality. It occurs because the application does not properly validate or sanitize user input in the quote_number parameter during a POST request, allowing an attacker with administrator privileges to inject malicious scripts that are stored and later executed in the application.
This vulnerability is classified under CWE-79, indicating improper neutralization of input during web page generation. Exploiting it can trigger JavaScript execution, such as injecting payloads that cause alerts or more harmful scripts.
How can this vulnerability impact me? :
[{'type': 'paragraph', 'content': "Although exploitation requires administrator privileges, this vulnerability is critical because it can lead to unauthorized modification of application data and compromise the application's integrity."}, {'type': 'list_item', 'content': 'Attackers can create persistent backdoors by storing malicious scripts.'}, {'type': 'list_item', 'content': 'It allows unauthorized changes to user data and account settings.'}, {'type': 'list_item', 'content': 'The overall integrity of the application can be fully compromised.'}] [2]
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
[{'type': 'paragraph', 'content': 'This vulnerability can be detected by testing the Edit Quotes functionality in InvoicePlane version 1.7.0 for stored Cross-Site Scripting (XSS) issues. Specifically, an administrator can attempt to inject typical XSS payloads such as "><img src=x onerror=alert(1)>" into the Quote # field during a POST request to /invoiceplane/index.php/quotes/ajax/save and observe if the script executes upon saving.'}, {'type': 'paragraph', 'content': 'Detection involves verifying if user input is properly sanitized and encoded before rendering. Monitoring logs for suspicious input patterns or unexpected script execution in the quotes editing interface can also help identify exploitation attempts.'}, {'type': 'paragraph', 'content': 'While no specific commands are provided in the resources, a practical approach includes using tools like curl or Postman to send crafted POST requests with XSS payloads to the vulnerable endpoint and checking the response or application behavior.'}, {'type': 'list_item', 'content': 'Example curl command to test the vulnerability (replace URL and authentication as needed):'}, {'type': 'list_item', 'content': 'curl -X POST -d \'quote_number=\\"><img src=x onerror=alert(1)>\' https://your-invoiceplane-instance/invoiceplane/index.php/quotes/ajax/save --cookie \'admin_session=your_session_cookie\''}] [2]
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation steps include upgrading InvoicePlane from version 1.7.0 to version 1.7.1, which contains patches that fix the stored XSS vulnerability by implementing proper input sanitization, output encoding, and validation.
Additional recommended measures are:
- Implement proper output encoding such as using htmlspecialchars or context-aware encoding for all user-controlled data before rendering.
- Validate and sanitize input on the server side, including checks on length, type, and allowed characters with whitelisting.
- Use centralized escaping libraries or secure templating engines that automatically escape output.
- Enforce a strong Content Security Policy (CSP) to restrict inline script execution and limit trusted script sources.