Skip to main content

Part-DB CVE-2026-55600

| EUVDEUVD-2026-108576 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-23 security-advisories@github.com
5.7
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-priv Editor user
  2. Delivery
    Store HTML payload in Part name
  3. Exploit
    Victim imports BOM CSV referencing Part ID
  4. Execution
    Part name rendered via Twig |raw in validation page
  5. Impact
    Phishing/UI-redress on trusted Part-DB page

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

Exploitation requires two authenticated users on the same Part-DB instance: an attacker holding permission to create or edit a Part name (reproduced with the non-admin Editor preset) who stores HTML markup in a Part name, and a victim holding permission to import a BOM into a Project. The payload fires only when the victim imports a BOM CSV that references the attacker-controlled Part ID AND the BOM validation result page renders an information message - the PoC deliberately includes an invalid quantity/designator row to force that validation result to render. Limiting factors: authenticated low-privilege access is needed (not remote-unauthenticated), the victim must actively perform a BOM import (user interaction), and the stored CSP reportedly blocks inline JavaScript so impact is confined to HTML injection (links, forms, tracking images, CSS-based UI redressing) rather than script execution or direct data compromise. Affected versions are <= 2.12.1; the only stated complete fix is updating to 2.12.2.

Impact

This is a cross-user stored HTML injection (CWE-79) in Part-DB with a CVSS 4.0 base score of 5.7 (medium). The input provides no CISA KEV listing and no EPSS probability, so exploitation status is: no public exploit identified as active exploitation, but a detailed public PoC reference exists in the GHSA advisory (step-by-step payload and CSV) - it is not packaged as a verified working exploit tool. The CVSS 4.0 vector tempers the raw concern: PR:L means the attacker must already hold an authenticated low-privileged account (reproduced with the non-admin Editor preset), UI:A means the victim must actively import a BOM, and AT:P reflects that a validation message must actually render (the PoC forces this with an intentionally invalid CSV row). Impact is integrity-only (VI:H in the supplied vector; VC:N/VA:N) and, critically, the reporter states the current Content Security Policy blocks inline JavaScript, so this is HTML injection for phishing/UI-redressing/tracking - not script execution or data theft. The vuln.today decision label is 'this_month', not act_now or emergency, consistent with a medium-severity issue that needs two cooperating-or-targeted user roles. Net: a real but moderate-priority issue - patch on a normal cycle rather than as an emergency, with higher relevance for multi-user Part-DB instances where low-trust Editor accounts exist.

Exploit ScenarioDerived

A low-privileged Editor user edits a Part name to contain HTML markup (for example a red, large 'Re-authenticate' link pointing to an attacker domain). Later, a different user imports a BOM CSV that references that Part ID into a Project, and the BOM validation result page renders the stored Part name through Twig's |raw filter, so the attacker's HTML appears inside the trusted Part-DB page and can be used for phishing or UI redressing. A detailed public PoC with the exact payload and CSV is included in the GHSA advisory; JavaScript is reportedly blocked by CSP, so the scenario is HTML/link/form injection rather than script execution.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% 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-user HTML injection in Part-DB's BOM validation results allows a user who can create or edit a Part name to plant markup that is later rendered unescaped in a different user's browser. The malicious Part name is interpolated into translated validation messages and output through Twig's |raw filter, so it executes as HTML when the victim imports a BOM CSV that references the poisoned Part ID; the advisory reports that the current Content Security Policy blocks inline JavaScript, confining impact to injected links, forms, tracking images and CSS-based UI redressing inside a trusted page rather than script execution or direct data compromise. Exploitation requires two authenticated low-privilege accounts (the advisory reproduced it with the non-admin Editor preset) and victim-side interaction (performing a BOM import), and a public proof-of-concept with payload and reproduction steps is published in the GHSA. Part-DB through 2.12.1 is affected; version 2.12.2 contains the fix.

RemediationAI

Upgrade to Part-DB 2.12.2, the version the vendor states contains the security fix; the release notes at https://github.com/Part-DB/Part-DB-server/releases/tag/v2.12.2 mark it as containing security fixes and recommend updating immediately, with the changelog diff available at https://github.com/Part-DB/Part-DB-server/compare/v2.12.1...v2.12.2, and the advisory at https://github.com/Part-DB/Part-DB-server/security/advisories/GHSA-qqrh-jjhg-vv5r documents the flaw. No separate workaround is stated in the available sources, and updating is the only stated complete fix; the CSP noted in the advisory blocks inline JavaScript but does not prevent the HTML injection itself, so it should not be treated as a substitute for patching. For deployments that cannot update immediately or that maintain a fork, the advisory's suggested code change is to stop rendering validation messages with the raw filter in templates/projects/_bom_validation_results.html.twig (change {{ info|raw }} to {{ info }} or {{ info|e }}), or, if some messages must contain trusted HTML, to escape each user-controlled placeholder before interpolation with something like htmlspecialchars($existing_part->getName(), ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); that escaping approach should also be applied to other BOM validation placeholders such as CSV-derived designators, package fields and quantities. The trade-off of the escaping fix is that any intentionally HTML-formatted validation message must be handled explicitly, since all interpolated values will display as literal text.

Affected VersionsENISA

Part-DB-server < 2.12.2

Affected Packages

euvd part_db_server fix: 2.12.2

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 is a PHP/Symfony application distributed as the Composer package composer/part-db/part-db-server, using Twig for templating and XLIFF translation catalogues (translations/messages.en.xlf) for its UI strings. The flaw is an output-encoding failure of the classic CWE-79 class: BOM validation messages built in src/Services/ImportExportSystem/BOMValidationService.php interpolate user-controlled Part names into translated placeholders such as partdb_link_success, and the result is emitted in templates/projects/_bom_validation_results.html.twig (with related rendering in templates/projects/import_bom_map_fields.html.twig) via {{ info|raw }}, which disables Twig's automatic contextual escaping. Because the tainted value is a normally benign Part name field rather than an intended rich-text field, the payload persists in the database and crosses a user boundary: the attacker never needs the victim to open the malicious Part, only to import a CSV whose Part-DB ID column points at it. The advisory notes that the deployed CSP blocks inline script and event handlers, so the practical primitive is arbitrary HTML injection (anchors, forms, external images, CSS overlays) within an authenticated page. Per the independent assessment the vector is network-reachable with low privileges (PR:L, authenticated) and requires victim interaction (UI:R), with scope change and low integrity impact on the rendered page.

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) PRIMARY 5.7 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.1 MEDIUM

PR:L because the attacker needs an authenticated Editor account to set the Part name; UI:R and S:C because a different victim must import a BOM to trigger cross-user rendering; CSP-limited HTML-only injection gives C:N/I:L/A:N.

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

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: 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.2, Part-DB renders BOM validation information messages using Twig's |raw filter. These messages include translated placeholders populated with user-controlled Part names. A user who can edit a Part name can store HTML markup in the Part name. When another user imports a BOM CSV referencing that Part ID, the malicious Part name is rendered as HTML in the victim's BOM validation result page. This results in a cross-user stored HTML injection issue. JavaScript execution appears to be blocked by the current Content Security Policy, but arbitrary HTML links, forms, images, and CSS-based UI elements can still be injected into a trusted Part-DB page. This issue has been patched in version 2.12.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Low
niche open-source electronics-component inventory tool, mostly hobbyist/small-lab use
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.3%
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

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
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-59188 MEDIUM
5.4 Oct 23

Stored cross-site scripting in Part-DB Server 2.12.2 and earlier allows an authenticated user with attachment-upload per

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