Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious BIP70 payment request
-
DeliveryDeliver request to bitcoinj client
-
ExploitManipulate pki_type argument
-
Executionurl.openConnection fetches attacker URL
-
ImpactServer issues internal SSRF request
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application actually uses bitcoinj's PaymentSession / Payment Request Handler to parse a BIP70-style payment request, and that the attacker can supply or influence that request (including the pki_type argument) so url.openConnection resolves to an attacker-chosen endpoint. Limiting factors: the BIP70 payment-request protocol is deprecated and disabled or unused in many modern deployments, so applications that never process payment requests are not exposed; impact is bounded to SSRF (Low confidentiality/integrity/availability per CVSS, no code execution), and realized damage depends on what internal services or metadata endpoints are reachable from the host. No OS-level authentication is needed (PR:N), but the application-level prerequisite of invoking payment-request parsing is a genuine constraint. |
| Impact | This is a moderate-risk SSRF (CWE-918) in the bitcoinj library's BIP70 Payment Request Handler, rated CVSS 4.0 6.9 (MEDIUM). The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) signals network-reachable, low-complexity, unauthenticated triggering, but all impact sub-scores are Low (VC:L/VI:L/VA:L) and subsequent-system impacts are None - consistent with a classic SSRF that lets an attacker coerce outbound connections rather than achieve code execution. The E:P exploit-maturity flag marks a proof-of-concept, which aligns with the input signal that POC/exploit code is publicly available via the bitcoinj issue tracker. No EPSS score was supplied, so exploitation probability cannot be quantified, and the CVE is NOT in CISA KEV, so there is no evidence of active exploitation. The disclosing source is VulDB (a third party), and the project 'has not responded yet' - so affected-version and fix data are unconfirmed by the vendor. Net assessment: a real but lower-tier priority - the AV:N/PR:N vector looks alarming in isolation, yet the vulnerability only manifests when an application actually invokes PaymentSession to process an attacker-influenced payment request, and the BIP70 payment-request protocol it depends on is largely deprecated, which materially narrows real-world exposure. Prioritize patching/removal where bitcoinj payment-request handling is enabled, but this is not an emergency widespread-exploitation scenario. |
| Exploit ScenarioDerived | An attacker crafts a malicious BIP70 payment request and delivers it to a bitcoinj-based wallet or service that parses it via PaymentSession; a manipulated pki_type value causes url.openConnection to connect to an attacker-chosen URL, forcing the server to make requests to internal/metadata endpoints. A proof-of-concept has been publicly disclosed on the bitcoinj issue tracker, so the trigger is known. Given CVSS AC:L and PR:N, no special complexity or authentication is required to drive the outbound request, though the application must be configured to process the payment request. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Server-side request forgery in bitcoinj 0.17 and earlier allows an attacker who can supply or influence a BIP70-style payment request to force the host to issue outbound HTTP connections to an attacker-chosen endpoint by manipulating the pki_type argument handled by PaymentSession.java. Only applications that actually parse payment requests through the Payment Request Handler are exposed, so deployments that never process BIP70 messages are not affected; remote, unauthenticated exploitation is possible with publicly available exploit code exists, though the impact is bounded to low confidentiality, integrity, and availability loss rather than code execution. The bitcoinj project was notified via an issue report but has not responded, and no vendor-released patch has been identified at time of analysis.
RemediationAI
No vendor-released patch identified at time of analysis: the bitcoinj project was notified via the referenced issue report but has not responded, so administrators should track https://github.com/bitcoinj/bitcoinj/issues/4386 and https://github.com/bitcoinj/bitcoinj/security/advisories/GHSA-cqq6-f9cp-chrp and apply an upstream fix as soon as one is published. Until then, the highest-value mitigation is to disable or avoid BIP70 payment-request processing entirely - do not call PaymentSession or the Payment Request Handler on untrusted input - which removes the vulnerable code path at the cost of losing BIP70 payment compatibility in deployments that still rely on it. If BIP70 must remain enabled, constrain the trust material sources by rejecting or ignoring pki_type values that are not strictly expected, validate that any URL passed to url.openConnection resolves only to intended PKI endpoints, and consider a code-level allowlist around PaymentSession.java. Network-level compensating controls also apply: enforce egress filtering or an allowlisting forward proxy on hosts running bitcoinj to block requests to 169.254.169.254 and other cloud metadata endpoints, RFC1918 ranges, and loopback services, accepting the operational overhead of maintaining those rules and the risk of breaking legitimate outbound payment-request traffic. Finally, run the affected service with least privilege and restricted network reachability so a successful SSRF yields minimal internal access.
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
The flaw is a classic server-side request forgery (CWE-918) rooted in the BIP70 payment-request protocol implementation inside the bitcoinj Java library. In bitcoinj up to 0.17, PaymentSession.java calls url.openConnection() while processing a payment request, and the attacker-influenced pki_type argument controls which trust-anchor or certificate endpoint the library contacts when validating the request. Because the protocol is designed to fetch trust material referenced by the payment request, an unvalidated pki_type can redirect that fetch to an internal address, cloud metadata endpoint, or other attacker-selected target reachable from the application host. BIP70 is a deprecated Bitcoin payment protocol that is disabled or unused in many modern deployments, which is the primary exposure limiter; the CPE cpe:2.3:a:n/a:bitcoinj:*:*:*:*:*:*:*:* reflects the library itself rather than a specific deployment. The assessed CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L) confirms the SSRF is remotely reachable without authentication but with only low-level impact, consistent with an attacker gaining the ability to make the server perform requests rather than execute code.
Know when Bitcoinj 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:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
SSRF is network-triggerable with low complexity and no auth (PR:N), but impact is limited to coerced outbound requests, so C/I/A are each Low and scope unchanged.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was determined in bitcoinj up to 0.17. Affected is the function url.openConnection of the file PaymentSession.java of the component Payment Request Handler. Executing a manipulation of the argument pki_type can lead to server-side request forgery. It is possible to launch the attack remotely. The exploit has been publicly disclosed and may be utilized. The project was informed of the problem early through an issue report but has not responded yet.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-102547
GHSA-pwv4-794h-r868
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB