Description
phpMyFAQ before 4.1.5 contains a potential authenticated path traversal vulnerability in the concatenatePaths() function within src/phpMyFAQ/Export/Pdf/Wrapper.php. A user with FAQ editing privileges can store HTML containing crafted image paths that are processed during PDF generation. The path resolution logic locates the substring "content" within a user-controlled path using strpos(); when "content" is absent, strpos() returns false, which becomes 0 when cast to an integer, preserving the entire attacker-controlled path. This path is later passed to file_get_contents() without canonicalization or root-directory containment validation, which may allow reading of files outside the intended content directory.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| phpMyFAQ | phpMyFAQ | < 4.1.5 | 4.1.5 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Packagist | phpmyfaq/phpmyfaq | >= 4.0.0-alpha, < 4.1.5 | 4.1.5 | GHSA-88g4-74f3-63x9 |
| Packagist | thorsten/phpmyfaq | >= 4.0.0-alpha, < 4.1.5 | 4.1.5 | GHSA-88g4-74f3-63x9 |
References
- GitHub Security Advisory (GHSA-88g4-74f3-63x9) vendor-advisory
- VulnCheck Advisory: phpMyFAQ - Authenticated Path Traversal in PDF Export via concatenatePaths Function third-party-advisory