Skip to main content

Part-DB Server EUVDEUVD-2026-108577

| CVE-2026-59188 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-23 GitHub_M
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with upload permission
  2. Delivery
    Upload SVG payload as photo.jpg
  3. Exploit
    Extension check skips SVG sanitization
  4. Execution
    Victim opens attachment inline
  5. Impact
    Script runs in Part-DB origin, exfiltrates session cookie

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

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 Part-DB account that holds attachment-upload permission; the advisory states even low-privilege users suffice, so no admin access is needed to plant the payload. Exploitation further requires a victim user to open the malicious attachment inline at /attachment/{id}/view - that user interaction is the primary limiting factor, and the payload only affects whoever views it (impact escalates if that viewer is an administrator). No special or non-default configuration is needed: the flaw is in default handling of uploaded attachments in Part-DB-server versions <= 2.12.2, because sanitization is decided by the user-controlled filename extension (e.g. naming an SVG .jpg bypasses it entirely) and the inline response still sets Content-Type: image/svg+xml.

Impact

This is a stored cross-site scripting flaw (CWE-79, with the vendor also citing CWE-434 for the upload-type confusion) rated CVSS 5.4 via CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N. The CVSS signals are internally consistent with the documented mechanism: network-reachable (AV:N), low complexity (AC:L), requires an authenticated account with upload permission (PR:L), requires a victim to view the attachment (UI:R), and crosses a security scope (S:C) because the injected script runs in the Part-DB origin against other users' sessions. No EPSS score and no KEV status are present in the input, so there is no evidence of active exploitation; exploitation status is best described as a public PoC being published in the vendor's GHSA advisory rather than confirmed in-the-wild use. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with a medium-severity, authentication-and-interaction-gated stored XSS rather than an unauthenticated RCE. The realistic concern is privilege escalation within an instance: a low-privilege user can plant a payload that fires when an administrator views the attachment, enabling session/cookie theft and potential account takeover - meaningful for multi-user deployments but not a mass-exploitable internet-facing issue. The CVSS confidentiality/integrity impacts are both Low and availability is None, so this is a real priority to patch for multi-user Part-DB instances but not a high-urgency emergency on the available signals.

Exploit ScenarioDerived

A low-privilege authenticated user uploads a file containing an SVG with an embedded <script> but names it photo.jpg; because sanitization is keyed off the user-controlled extension, the script-bearing SVG is stored unsanitized. When any other user - including an administrator - opens the attachment inline, the server returns Content-Type: image/svg+xml and the browser executes the script in the Part-DB origin, stealing the victim's session cookie. A working PoC (malicious SVG payload plus the upload curl command) is published in the vendor GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 23, 2026

Stored cross-site scripting in Part-DB Server 2.12.2 and earlier allows an authenticated user with attachment-upload permission to plant a JavaScript-bearing SVG that executes in the Part-DB origin whenever another user opens the attachment inline at /attachment/{id}/view. Because sanitization is decided from the user-controlled filename extension, naming the SVG payload with a non-SVG extension such as .jpg skips the sanitizer entirely, while the response still carries Content-Type: image/svg+xml; this can lead to session hijacking or account takeover of whichever user - potentially an administrator - views the file. Rated CVSS 5.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) with the vendor also citing CWE-434 alongside CWE-79; not listed in CISA KEV, and the advisory ships a public proof-of-concept reproduction (curl upload steps) rather than confirmed working exploit code; fixed in 2.12.3.

RemediationAI

Vendor-released patch: upgrade to Part-DB 2.12.3, which the release notes describe as containing security fixes and recommends applying immediately; it closes the sanitization bypass for SVGs uploaded with non-SVG extensions and additionally adds CSP headers to static files so an uploaded vulnerable file cannot execute script if one does slip through (https://github.com/Part-DB/Part-DB-server/releases/tag/v2.12.3). The full technical detail, including the affected code paths in AttachmentSubmitHandler.php, Attachment.php and AttachmentFileController.php, is in advisory GHSA-2vhp-c958-m47j (https://github.com/Part-DB/Part-DB-server/security/advisories/GHSA-2vhp-c958-m47j). The advisory's stated fix direction is content-based type detection using magic bytes (finfo_file()/mime_content_type()) with rejection of mismatched extension/type pairs, plus XML-aware SVG sanitization that strips <script> elements and event-handler attributes before saving; if you cannot upgrade immediately, removing attachment-upload permission from untrusted or low-privilege accounts reduces who can plant a payload but does not address the missing content-type check, and the trade-off is that those users can no longer attach files such as datasheets or images to parts.

Affected VersionsENISA

Part-DB-server < 2.12.3

Affected Packages

euvd part_db_server fix: 2.12.3

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

Part-DB Server is a PHP/Symfony application for managing electronic component inventory, and the flaw sits in its attachment handling chain. In src/Services/Attachments/AttachmentSubmitHandler.php the uploader calls the SVG sanitizer only when the attachment's getExtension() equals "svg"; getExtension() in src/Entity/Attachments/Attachment.php derives that value from the user-supplied original_filename field (falling back to the internal path) rather than from the stored bytes, so an SVG saved as photo.jpg is never passed to the sanitizer. The serving side compounds this: forbidHTMLContentType() in src/Controller/AttachmentFileController.php rewrites only a text/html MIME type to text/plain and has no case for image/svg+xml, so the browser receives the SVG inline with its true MIME type and executes embedded <script> or event-handler content in the Part-DB origin. The result is CWE-79 stored XSS enabled by the upload-type confusion the vendor tracks as CWE-434; the underlying remediation direction described in the advisory is to detect real content type via magic bytes (PHP finfo_file()/mime_content_type()) and reject mismatches, plus XML-aware SVG sanitization.

Know when Part Db 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 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Authenticated uploader (PR:L) over the network (AV:N/AC:L); victim must view the attachment (UI:R); script executes cross-context in the origin (S:C) with limited C/I impact and no availability loss.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 23, 2026 - 05:01 EUVD

DescriptionCVE.org

Part-DB is an open source inventory management system for electronic components. Prior to version 2.12.3, Part-DB-server sanitizes SVG files based solely on the user-controlled filename extension rather than actual file content type. An authenticated attacker can upload a malicious SVG with JavaScript payload using a non-SVG extension (e.g., .jpg), bypassing sanitization entirely. When any user views the attachment inline, the browser receives Content-Type: image/svg+xml and executes the embedded script in the Part-DB origin. This issue has been patched in version 2.12.3.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche open-source electronics inventory tool, limited enterprise footprint
Social Media
1
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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· derived
Medium

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2022-0848 CRITICAL POC
9.8 Mar 04

OS Command Injection in GitHub repository part-db/part-db prior to 0.5.11. Rated critical severity (CVSS 9.8), this vuln

CVE-2026-54630 CRITICAL
9.6 Oct 23

Authenticated file upload in Part-DB Server 2.12.0 and earlier lets any member of the default users group obtain remote

CVE-2026-86055 HIGH
8.7 Oct 23

Password-reset link poisoning in Part-DB Server (through 2.13.2) lets an unauthenticated remote attacker who can reach t

CVE-2023-26042 MEDIUM
6.1 Feb 27

Part-DB is an open source inventory management system for your electronic components. Rated medium severity (CVSS 6.1),

CVE-2026-54615 MEDIUM
6.0 Oct 23

Stored HTML injection in Part-DB through 2.12.0 lets an authenticated user with edit rights on an entity store a crafted

CVE-2026-55600 MEDIUM
5.7 Oct 23

Stored cross-user HTML injection in Part-DB's BOM validation results allows a user who can create or edit a Part name to

CVE-2026-86018 MEDIUM
5.3 Oct 23

Authenticated users with attachment create/edit permissions can bypass the configured MAX_ATTACHMENT_FILE_SIZE limit in

CVE-2026-86019 MEDIUM
5.3 Oct 23

Authenticated users holding the API access permission can bypass the configured maximum attachment file size in Part-DB

CVE-2026-86020 MEDIUM
4.6 Oct 23

Spreadsheet formula injection in Part-DB through 2.13.1 lets an authenticated user who holds the '@parts.import' permiss

CVE-2025-55194 MEDIUM POC
5.7 Aug 13

Part-DB is an open source inventory management system for electronic components. Rated medium severity (CVSS 5.7), this

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