Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconReach public /pw_reset/request endpoint
-
DeliverySubmit forgot-password with spoofed Host header
-
ExploitPart-DB emails victim token with attacker hostname
-
InstallVictim or mail scanner dereferences poisoned link
-
C2Attacker captures valid reset token
-
ExecuteReplay token on real instance, set password
-
ImpactFull admin account takeover
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Password recovery security
|
| Exploitation Conditions | Exploitation requires the target instance to have email-based password reset enabled (ALLOW_EMAIL_PW_RESET=1, which the vendor describes as the expected setup when a mail server is configured) AND the default empty TRUSTED_HOSTS configuration, which causes Symfony to trust any client-supplied Host header. The attacker must know the victim's username or email (the forgot-password form accepts either) and have network access to the public /pw_reset/request endpoint; no account, CSRF secret, or trusted-proxy bypass is needed because the plain Host path is unprotected (the X-Forwarded-Host variant is already neutralised by the default TRUSTED_PROXIES=127.0.0.1). The decisive LIMITING factor is that the token only reaches the attacker if the victim opens the legitimate-looking reset email or an automated inbound URL scanner pre-fetches the link; instances that set a non-empty TRUSTED_HOSTS allowlist (reject non-matching Host with HTTP 400) or have email reset disabled are not exploitable. |
| Impact | This is a genuine high-priority issue, not an inflated-CVSS artifact. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H, base 8.7) aligns with the mechanism described: an unauthenticated, network-reachable host-header poisoning flaw (CWE-640) that yields full pre-authentication account takeover, including the seeded admin account. The GHSA advisory includes a complete, observed end-to-end reproduction against the official jbtronics/part-db1:v2.13.1 image, so exploit tradecraft is public and reliable. The one limiting signal is UI:P - the victim (or an automated inbound mail-security URL scanner) must dereference the emailed link - which is why this is a one-step-removed token-disclosure chain rather than a direct single-request RCE. EPSS is not provided in the input and the CVE is NOT in CISA KEV, so there is no evidence of active in-the-wild exploitation; the vuln.today decision label is 'this_week', consistent with a serious-but-not-emergency, patch-this-week posture. No signals conflict: the network vector, unauthenticated privilege, and the published working PoC all point the same direction. The main caveat is exposure scope - the flaw only matters on instances with email-based password reset enabled (ALLOW_EMAIL_PW_RESET=1) and with the default empty TRUSTED_HOSTS. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a raw POST to the public /pw_reset/request endpoint for a known account (e.g. the seeded 'admin') with a spoofed Host header; Part-DB, trusting all hosts by default, emails the victim a genuine reset token inside a link pointing at the attacker's hostname. When the victim or an automated inbound mail-security link scanner dereferences that URL, the valid token reaches the attacker, who replays it against the real instance to set a new password and seize the account. A full working proof-of-concept with observed successful takeover is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Password-reset link poisoning in Part-DB Server (through 2.13.2) lets an unauthenticated remote attacker who can reach the public /pw_reset/request endpoint obtain a valid reset token for any known account, including the seeded admin, by submitting a forgot-password request with a spoofed HTTP Host header; the victim is emailed a genuine, valid token inside a link pointing at an attacker-controlled hostname, which the attacker then replays against the real instance to set a new password and take over the account. Exploitation is limited to installations that have email-based password reset enabled (ALLOW_EMAIL_PW_RESET=1) and leave TRUSTED_HOSTS empty, which the shipped configuration does by default, and the token only reaches the attacker if the victim opens the legitimate-looking email or an inbound URL scanner pre-fetches the link. The vendor advisory includes a detailed end-to-end reproduction; there is no CISA KEV listing and no confirmed active exploitation at time of analysis, and the vendor released a fix in 2.13.3.
RemediationAI
Upgrade to Part-DB Server 2.13.3, the vendor-released patch that 'ensures that the password reset link is always pointing to a trustable host' (https://github.com/Part-DB/Part-DB-server/releases/tag/v2.13.3); this is the complete fix. If the upgrade cannot be applied this week, the advisory documents configuration-level mitigations that close the vector without changing code: set a non-empty TRUSTED_HOSTS allowlist derived from the instance's real hostname, which makes Symfony reject any request carrying a non-matching Host header with HTTP 400 before it reaches the reset flow (trade-off: legitimate clients reaching the instance under a hostname not in the allowlist, such as an alternate internal FQDN or IP, will be rejected until added), or disable email-based password reset by clearing ALLOW_EMAIL_PW_RESET (trade-off: users lose self-service recovery and must have passwords reset by an administrator). Version 2.13.3 also surfaces a homepage banner urging operators to configure TRUSTED_HOSTS, which is worth enabling after upgrading. Because the token is delivered as soon as the reset email is opened or pre-fetched by an inbound mail scanner, treating any pre-2.13.3 instance with email reset enabled as potentially compromised and rotating credentials for accounts that received unexpected reset mail is advisable; the vendor advisory at https://github.com/Part-DB/Part-DB-server/security/advisories/GHSA-m9rf-69wp-c56r contains the full reproduction and the suggested host-pinning fix for reference.
Affected VersionsENISA
Affected Packages
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 Symfony (PHP) application, and the flaw is CWE-640, weak password recovery for forgotten passwords. The reset email template renders the link with Twig's url() helper, which resolves to UrlGeneratorInterface::ABSOLUTE_URL, and the mail is rendered and sent synchronously inside the HTTP request (PasswordResetManager.php; no async messenger transport configured). Because the request context exists, Symfony's router builds the absolute URL from the client-supplied Host header rather than from the configured DEFAULT_URI, and nothing pins that host: framework.yaml sets trusted_hosts from '%env(TRUSTED_HOSTS)%' while the shipped parameters file defaults that variable to an empty string whose own comment reads 'Trust all host names by default'. With trusted_hosts empty, Symfony accepts any Host value; the configured DEFAULT_URI only applies to non-HTTP/CLI router contexts, and the X-Forwarded-Host variant is already neutralised by the default TRUSTED_PROXIES=127.0.0.1, leaving the plain Host path unprotected. The reset token itself (md5(random_bytes(32)), stored hashed and valid for one day) is embedded in the link path /pw_reset/new_pw/{user}/{token} and also printed verbatim in the email body, so a captured link fully discloses it. The affected package is composer/part-db/part-db-server (CPE cpe:2.3:a:part-db:part-db-server), reported as vulnerable through 2.13.2 and fixed in 2.13.3, which also adds a homepage banner recommending that operators configure TRUSTED_HOSTS.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Remote unauthenticated host-header poisoning (AV:N/AC:L/PR:N), but token disclosure needs the victim or a mail scanner to open the link (UI:R); admin takeover gives full C/I/A with no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Part-DB is an open source inventory management system for electronic components. Prior to version 2.13.3, Part-DB builds the absolute URL of the password-reset link it emails to a user from the client-supplied HTTP Host header, with no trusted-host validation. An unauthenticated attacker who submits a forgot-password request for a known account while sending a spoofed Host header causes Part-DB to email that account a reset link whose hostname is attacker-controlled, while still embedding the genuine reset token. When the victim opens the link (or an automated inbound mail-security scanner dereferences it), the valid token is disclosed to the attacker, who replays it against the real instance to set a new password and take over the account. Because the seeded admin account can be targeted, this yields full pre-authentication administrative account takeover. This issue has been patched in version 2.13.3.
Technical POC Analysis
CWE-640 (Weak Password Recovery Mechanism for Forgotten Password) - host header injection into the emailed reset link's absolute URL.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-86055 in Part-DB Server (through 2.13.2) enables unauthenticated attackers to hijack any account, including the seeded admin, by exploiting the password-reset flow. Default configurations are vulnerable, putting organizations that rely on Part-DB for inventory management at risk of full system compromise.
Set ALLOW_EMAIL_PW_RESET=0 to disable email-based password reset. Configure TRUSTED_HOSTS with only legitimate hostnames. Implement a reverse proxy or web application firewall to validate Host headers. Monitor password-reset logs for anomalies.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
OS Command Injection in GitHub repository part-db/part-db prior to 0.5.11. Rated critical severity (CVSS 9.8), this vuln
Authenticated file upload in Part-DB Server 2.12.0 and earlier lets any member of the default users group obtain remote
Part-DB is an open source inventory management system for your electronic components. Rated medium severity (CVSS 6.1),
Stored HTML injection in Part-DB through 2.12.0 lets an authenticated user with edit rights on an entity store a crafted
Stored cross-user HTML injection in Part-DB's BOM validation results allows a user who can create or edit a Part name to
Stored cross-site scripting in Part-DB Server 2.12.2 and earlier allows an authenticated user with attachment-upload per
Authenticated users with attachment create/edit permissions can bypass the configured MAX_ATTACHMENT_FILE_SIZE limit in
Authenticated users holding the API access permission can bypass the configured maximum attachment file size in Part-DB
Spreadsheet formula injection in Part-DB through 2.13.1 lets an authenticated user who holds the '@parts.import' permiss
Part-DB is an open source inventory management system for electronic components. Rated medium severity (CVSS 5.7), this
EUVD-2026-108581
NVD
CVE.org
EPSS
GitHub
Exploit-DB