Skip to main content

Part-DB Server EUVDEUVD-2026-108573

| CVE-2026-54630 CRITICAL
Unrestricted Upload of File with Dangerous Type (CWE-434)
2026-10-23 GitHub_M
9.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as default users-group editor
  2. Delivery
    Create attachment type with empty extension filter
  3. Exploit
    Upload .phar payload as public part attachment
  4. Execution
    Request stored file under /media/ triggering PHP-FPM
  5. Impact
    Execute arbitrary PHP/shell as www-data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File type validation, storage isolation
MITRE ATT&CK

2 techniques across 2 tactics: Command and Control, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account in Part-DB's default users group (PRESET_EDITOR), which grants parts.create, parts.edit and attachment_types.create - enough to create an attachment type with an empty file-type filter and attach a file. The attachment must be uploaded as public ('Private attachment' left unchecked), which is the default, so it lands in public/media/ under the Apache document root. Crucially, exploitation depends on the webserver routing .phar to PHP-FPM: this is true in the shipped conf-enabled/php8.4-fpm.conf of the official Docker image (FilesMatch \.ph(?:ar|p|tml)$ mapped to PHP-FPM with DocumentRoot /var/www/html/public), so the stock Docker install is vulnerable by default. Deployments on a webserver configuration that does not execute .phar would not be exploitable. The database backend is irrelevant, no admin rights are needed, and no victim interaction is required. Fixed in 2.12.1 (vulnerable <=2.12.0); updating is the vendor-stated fix.

Impact

This is a genuine high-priority issue, not an inflated CVSS score. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N, 9.6) indicates network-reachable, low-complexity exploitation requiring only low privileges and no user interaction, with a scope change - all consistent with the described mechanism: an authenticated low-privilege editor uploads a .phar attachment that the stock Apache+PHP-FPM configuration executes as PHP. The vuln.today Decision label is act_now and the vendor release notes mark the fix as CRITICAL and urge immediate updating, so this should be remediated without delay. The PR:L metric is confirmed by the mechanism (a non-admin account in the default users group reaches the sink), so exploitation is authenticated, not anonymous - this is the single most important limiting factor. No CISA KEV listing and no EPSS score are present in the input, so there is no signal of widespread automated exploitation; however, the GHSA advisory supplies live-verified reproduction steps against the official jbtronics/part-db1:v2.12.0 Docker image, so the exploitation methodology is public. One inconsistency: the supplied CVSS sets A:N, yet the advisory explicitly states the resulting www-data RCE allows database and uploaded-file destruction, which implies a real availability impact - verify against vendor. Net: real, immediately actionable risk gated primarily by the need for any authenticated editor account and by webserver configuration.

Exploit ScenarioDerived

An authenticated user holding only the default users-group (editor) role creates a part, creates or reuses an attachment type with an empty file-type filter, and uploads a file named like editorshell.phar containing PHP (e.g. <?php echo shell_exec("id"); ?>) as a public attachment. They then issue a plain GET for the stored file under /media/, and the shipped Apache/PHP-FPM mapping executes it, returning command output as the www-data user. The GHSA advisory includes live-verified reproduction steps demonstrating this exact chain on the official v2.12.0 Docker image.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Authenticated file upload in Part-DB Server 2.12.0 and earlier lets any member of the default users group obtain remote code execution as the www-data web user by uploading a .phar attachment that the shipped Apache configuration routes to PHP-FPM. The upload handler rewrites a fixed denylist of dangerous extensions to .txt but omits phar, and a freshly created attachment type carries an empty file-type filter, so the client-supplied .phar extension survives into the web-served public/media/ directory under the document root. The stock Docker image is exploitable by default, the public advisory documents a live-verified reproduction against jbtronics/part-db1:v2.12.0, and the issue is fixed in 2.12.1.

RemediationAI

Vendor-released patch: 2.12.1, which the release notes describe as containing critical security fixes and recommend applying immediately; all versions up to and including 2.12.0 are affected, and upgrading is the vendor-stated fix (https://github.com/Part-DB/Part-DB-server/releases/tag/v2.12.1, advisory https://github.com/Part-DB/Part-DB-server/security/advisories/GHSA-w5m7-3xf7-6g7g). The same release notes also require changing the APP_SECRET (generate a new 32-character value with openssl rand -hex 32 and set it in .env.local or the docker-compose environment), because the old default permits forgery of REMEMBERME tokens; administrators receive a warning banner prompting this change, and the side effect of rotating the secret is that existing sessions and remember-me tokens are invalidated. If upgrading must be deferred, the specific compensating control indicated by the advisory is to stop the webserver from executing .phar files: remove 'ar' from the FilesMatch "\.ph(?:ar|p|tml)$" PHP-FPM mapping or explicitly deny .phar requests under the document root, applied to every vhost and front-end proxy, with the trade-off that any legitimate HTTP delivery of phar archives breaks and any forgotten vhost reintroduces the exposure; deployments whose webserver configuration does not route .phar to PHP-FPM are not exploitable, but that is a property of the server configuration rather than of the application. Note that leaving the 'Private attachment' option checked is not a reliable organizational control, since the default is public and any uploading user can leave it unchecked.

Affected VersionsENISA

Part-DB-server < 2.12.1

Affected Packages

euvd part_db_server fix: 2.12.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This is CWE-434 (unrestricted upload of a file with a dangerous type) rooted in an incomplete denylist rather than an allowlist: AttachmentSubmitHandler::upload() names the stored file with the attacker-supplied client extension, and renameBlacklistedExtensions() only rewrites a fixed set (php, phtml, php3-5, sh, cgi, py, pl, exe, js, html, htaccess) to .txt, leaving phar untouched. The per-attachment-type extension filter (isValidFileExtension()) returns true whenever a type has no filter, which is the default for newly created types, and a non-admin member of the default users group (PRESET_EDITOR) holds attachment_types.create, parts.create and parts.edit, so the guard can be bypassed without admin rights. Because public attachments are the default and resolve through getMediaPath() into public/media/ - the Apache DocumentRoot /var/www/html/public - the stored phar file is reachable over HTTP, and the shipped conf-enabled/php8.4-fpm.conf maps FilesMatch "\.ph(?:ar|p|tml)$" to PHP-FPM, causing the archive to be interpreted as PHP and executed as www-data. The assessed vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) reflects network reachability, low attack complexity, authenticated but low-privileged access, no user interaction, scope change, and high confidentiality and integrity impact; the database backend is irrelevant to exploitation, and the trigger is fully described in the advisory rather than inferred.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.6 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 9.9 CRITICAL

Authenticated default editor reaches the sink (PR:L), no interaction and reliable (AC:L/UI:N); www-data RCE escapes the app (S:C) and enables DB destruction, so A:H unlike the supplied A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 05:01 EUVD
CVE Published
Oct 23, 2026 - 03:48 cve.org
CRITICAL 9.6

DescriptionCVE.org

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.

Technical POC Analysis

CWE-434: Unrestricted Upload of File with Dangerous Type.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

CVE-2026-54630 in Part-DB Server (versions 2.12.0 and earlier) allows any authenticated user to upload a malicious .phar file and achieve remote code execution as the web server user, potentially leading to full system compromise. This affects organizations using Part-DB for inventory management, especially those with default Docker deployments, and could result in data breaches, service disruption, and unauthorized access to sensitive component data. Leadership should prioritize remediation given the critical severity and the fact that the stock Docker image is exploitable by default.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: remove or disable the .phar extension handler in the Apache configuration, enforce strict file-type filters on all attachment types, restrict upload privileges to trusted users, and monitor the public/media/ directory for unauthorized files.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche open-source electronics-component inventory tool, limited enterprise footprint
Social Media
2
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Very High

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +48
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy