<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bsv-Wallet — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/bsv-wallet/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 09 Apr 2026 20:28:10 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/bsv-wallet/feed.xml" rel="self" type="application/rss+xml"/><item><title>bsv-sdk and bsv-wallet Credential Forgery Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2026-04-bsv-credential-forgery/</link><pubDate>Thu, 09 Apr 2026 20:28:10 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-04-bsv-credential-forgery/</guid><description>The bsv-sdk and bsv-wallet packages are vulnerable to credential forgery because the `acquire_certificate` function persists certificate records to storage without verifying the certifier's signature, allowing attackers to forge identity certificates.</description><content:encoded><![CDATA[<p>The <code>bsv-sdk</code> and <code>bsv-wallet</code> Ruby gems are vulnerable to credential forgery due to a signature verification bypass in the <code>acquire_certificate</code> function. This function, present in both gems, persists certificate records to storage without properly verifying the certifier&rsquo;s signature. An attacker can exploit this vulnerability through two acquisition paths: by directly supplying certificate fields (direct path) or by controlling a certifier endpoint (issuance path). This allows the attacker to forge identity certificates that are then treated as authentic by other functions like <code>list_certificates</code> and <code>prove_certificate</code>. The vulnerability affects <code>bsv-sdk</code> versions &gt;= 0.3.1 and &lt; 0.8.2, and <code>bsv-wallet</code> versions &gt;= 0.1.2 and &lt; 0.3.4. This vulnerability was identified during a cross-SDK compliance review conducted on 2026-04-08.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker gains access to a system that uses either the <code>bsv-sdk</code> or <code>bsv-wallet</code> Ruby gem.</li>
<li>The attacker invokes the <code>acquire_certificate</code> function with <code>acquisition_protocol: 'direct'</code>.</li>
<li>The attacker supplies arbitrary certificate fields, including a forged <code>signature</code>, a <code>certifier</code>, <code>serial_number</code>, and <code>revocation_outpoint</code>.</li>
<li>Alternatively, the attacker invokes the <code>acquire_certificate</code> function with <code>acquisition_protocol: 'issuance'</code> and specifies a malicious certifier URL they control.</li>
<li>The vulnerable <code>acquire_certificate</code> function persists the attacker-supplied certificate data to storage without verifying the certifier&rsquo;s signature.</li>
<li>The attacker or a downstream process invokes <code>list_certificates</code> or <code>prove_certificate</code> to retrieve the forged certificate.</li>
<li>The application trusts the forged certificate as authentic, leading to credential forgery and potential unauthorized access or privilege escalation.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to forge identity certificates attributed to arbitrary certifier identities. This can lead to credential forgery, where the attacker can assert false attributes about a subject. Applications relying on the wallet&rsquo;s certificate store for identity attributes, such as KYC assertions or role claims, become vulnerable to credential forgery. This is a credential-forgery primitive, not merely a spec divergence from BRC-52.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>bsv-sdk &gt;= 0.8.2</code> or <code>bsv-wallet &gt;= 0.3.4</code> to patch the vulnerability. These versions implement signature verification using <code>BSV::Wallet::CertificateSignature</code> and raise <code>BSV::Wallet::CertificateSignature::InvalidError</code> for invalid certificates.</li>
<li>If upgrading is not immediately possible, do not expose <code>acquire_certificate</code> (either acquisition protocol) to untrusted callers, as described in the Workarounds section of this brief.</li>
<li>If upgrading is not immediately possible, treat any record returned by <code>list_certificates</code> / <code>prove_certificate</code> as unverified and perform an out-of-band BRC-52 verification against the certifier&rsquo;s public key before acting on it.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>credential-forgery</category><category>ruby</category><category>bsv-sdk</category><category>bsv-wallet</category></item></channel></rss>