Part-DB attachment upload allows PHP execution via .phar files
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-434.
Summary
Part-DB before 2.12.1 stores uploaded part attachments under the web-served public/media directory and does not block the .phar extension. Any authenticated user in the default users group can upload a .phar file to a part and request it under /media/ to run arbitrary PHP as the web server user. The flaw is an unrestricted upload of a dangerous file type (CWE-434) and is exploitable where Apache routes .phar files to PHP-FPM, as in the default Docker image.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Part-DB is an open source inventory management system for electronic components. Prior to version 2.12.1, the part attachment upload handler stores uploaded files under the web-served media directory using the client-supplied file extension, and its extension blocklist does not include phar. AttachmentSubmitHandler::renameBlacklistedExtensions() rewrites dangerous extensions (php, phtml, sh, cgi, py, js, html, htaccess, ...) to .txt, but phar is absent from the list, so a .phar file keeps its extension. Public attachments (the default) are written into public/media/, which is the Apache document root. The shipped Apache configuration routes .phar to PHP-FPM, so the stored file is executed as PHP on request. The per-attachment-type extension filter is empty by default and is not consulted by the upload handler in a way that blocks this, and a non-admin user in the default users group can create an attachment type with no filter and attach files to parts. Any authenticated user in the default users group uploads a .phar attachment to a part and fetches it under /media/, executing arbitrary PHP as the www-data web user. Ability to exploit depends on the webserver config, docker image contained the vulnerability by default. This issue has been patched in version 2.12.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Part-DB-server to version 2.12.1, which contains the fix.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA Part-DB-server (Part-DB) Fixed in 2.12.1
Timeline
- 2026-10-23 Threatist record created from CVE-2026-54630
- 2026-10-29 CISA SSVC decision points changed
- 2026-10-29 Priority changed: MEDIUM → HIGH
References
More Part-DB vulnerabilities
- TI-2026-79546 Password reset link poisoning in Part-DB allows account takeover CVSS 4.0HIGH 8.7
- TI-2019-15485 Part-DB 0.4 Authentication Bypass via login.php CVSS 4.0HIGH 8.8
- TI-2022-00754 OS Command Injection in part-db/part-db CVSS 3.1CRITICAL 9.8
- TI-2026-79539 Hardcoded APP_SECRET in Part-DB enables forged login cookies CVSS 3.1MEDIUM 6.3
- TI-2026-79540 Stored HTML injection in Part-DB BOM validation results CVSS 4.0MEDIUM 5.7
- TI-2025-34870 Part-DB Persistent Denial of Service via Uncaught Exception from Misleading File Extension in Avatar Upload CVSS 3.1MEDIUM 5.7
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences