Skip to content

GHSA-x2v3-9p22-w3x6 CVE-2023-53929

phpMyFAQ contains a CSV injection vulnerability

High Packagist
Severity
0.0 / 10
High · CVSS 4.0
Exploit chance (EPSS)
0.54%
Chance of exploitation in the next 30 days. Higher than 45.40% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-1236 Improper Neutralization of Formula Elements in a CSV File
Fix
None yet
No fixed version published

Description

phpMyFAQ 3.1.12 contains a CSV injection vulnerability that allows authenticated users to inject malicious formulas into their profile names. Attackers can modify their user profile name with a payload like 'calc|a!z|' to trigger code execution when an administrator exports user data as a CSV file.

Affected versions

Packagist

PackageVulnerableFixed in
phpmyfaq/phpmyfaq
<= 3.1.12
No fix yet
thorsten/phpmyfaq
<= 3.1.12
No fix yet

How to fix

No fixed version has been published yet. Until one is, remove or replace the package, or turn off or isolate the affected feature. This page updates when a fix ships.

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N

Attack vector
Network
Attack complexity
Low
Attack requirements
None
Privileges required
Low
User interaction
Active
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
None
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
High
Integrity (subsequent systems)
High
Availability (subsequent systems)
None

CVSS 3.1 8.8

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Weakness

CWE-1236: Improper Neutralization of Formula Elements in a CSV File

The product saves user-provided information into a Comma-Separated Value (CSV) file, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as a command when the file is opened by a spreadsheet product.

How to prevent it
  • Implementation: When generating CSV output, ensure that formula-sensitive metacharacters are effectively escaped or removed from all data before storage in the resultant CSV. Risky characters include '=' (equal), '+' (plus), '-' (minus), and '@' (at).
  • Implementation: If a field starts with a formula character, prepend it with a ' (single apostrophe), which prevents Excel from executing the formula.
  • Architecture and Design: Certain implementations of spreadsheet software might disallow formulas from executing if the file is untrusted, or if the file is not authored by the current user.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-rw77-vq4g-x3hp
phpMyFAQ has SQL Injection in `StopWords::add()` — Unescaped Stop Word Insertion
High Also affects phpmyfaq/phpmyfaq
GHSA-8gpw-xvpf-hvx5
phpMyFAQ's two-factor authentication login bypasses the password factor
High Also affects phpmyfaq/phpmyfaq
GHSA-pgwp-vc7q-cvj3
phpMyFAQ has Stored XSS in Admin FAQ Editor via HTML Entity Bypass in Frontend FAQ Submission
High Also affects phpmyfaq/phpmyfaq
GHSA-6pvm-2vjj-rx4w
phpMyFAQ: SQL LIKE Wildcard Injection in Chat User Search Allows Authenticated User Enumeration
Medium Also affects thorsten/phpmyfaq
GHSA-mf8r-wm2w-f8c5
phpMyFAQ public FAQ APIs expose inactive FAQ content
Medium Also affects phpmyfaq/phpmyfaq
GHSA-88g4-74f3-63x9
phpMyFAQ has Potential Authenticated Path Traversal in PDF Export
Medium Also affects phpmyfaq/phpmyfaq
GHSA-pg62-f8g4-4wqh
phpMyFAQ privilege escalation: GroupController::updatePermissions lets a GROUP_EDIT admin grant rights they do not hold
High Also affects phpmyfaq/phpmyfaq
GHSA-985r-q3qp-299h
phpMyFAQ has an incomplete fix for GHSA-xvp4-phqj-cjr3 — editUser() and updateUserRights() lack authorization guards
High Also affects phpmyfaq/phpmyfaq
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor