# RUSTSEC-2026-0225: Debug output exposes NIP-46 and NIP-60 credentials

> Debug output leaks NIP-46 and NIP-60 credentials, allowing attackers to impersonate signers or spend tokens if logs are accessible.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Not stated
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 1 Aug 2026

## What is RUSTSEC-2026-0225?

RUSTSEC-2026-0225 is a vulnerability in nostr, published on 1 Aug 2026. 

### Official description

Several NIP-46 and NIP-60 types used derived `Debug` implementations even though
their fields contained credentials or decrypted application data. Formatting these
values exposed NIP-46 connection secrets and request parameters, as well as NIP-60
private keys, Cashu bearer proofs, and quote capability identifiers.

Applications commonly include `Debug` output in diagnostic logs, tracing spans, or
error reports. Anyone able to read those outputs could recover the disclosed
credentials and, depending on the value, impersonate a signer connection or spend
wallet tokens. The issue does not expose data unless an affected value is formatted
and the resulting output is made accessible.

The affected types now use custom `Debug` implementations that preserve variant and
non-sensitive structural information while replacing credentials, bearer values,
and plaintext fields with redaction markers. Serialization and protocol behavior are
unchanged.

## Which versions are affected by RUSTSEC-2026-0225?

1 open source package ship an affected version, including nostr.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `nostr` | crates.io | From 0.0.0-0 | 0.44.7 |

## How do I fix RUSTSEC-2026-0225?

Upgrade nostr to 0.44.7 or later.

## Is RUSTSEC-2026-0225 being exploited?

There is no known exploitation of RUSTSEC-2026-0225 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for RUSTSEC-2026-0225 and fix it if it is affected.

What it is: RUSTSEC-2026-0225 is a vulnerability in nostr, published on 1 Aug 2026. 
Exploitation: There is no known exploitation of RUSTSEC-2026-0225 in the wild and no public exploit code.

Affected packages and fixed versions:
- nostr (crates.io): affected from 0.0.0-0; fixed in 0.44.7

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/RUSTSEC-2026-0225/ (Markdown: https://insights.sbomify.com/RUSTSEC-2026-0225/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/RUSTSEC-2026-0225

---
From sbomify Insights: https://insights.sbomify.com/RUSTSEC-2026-0225/
Summaries are generated and may contain mistakes; the official description above is the record.
