Join Nostr
2026-08-26 13:10:53 UTC

codonaft on Nostr: Is Clave the only #iOS NIP-46 singer published on AppStore/AltStore today? #asknostr ...

Is Clave the only #iOS NIP-46 singer published on AppStore/AltStore today? #asknostr

And why do we still allow pasting a raw nsec/ncryptsec into the clients? Why? Something is still not working with these signers? Somebody believes that all clients actually securely store the secrets, properly zeroize memory after exiting, and so on?

Properly managing these secrets was never an easy thing to do. It should never be delegated to some random vibe-coded stuff, that was not designed specifically for that; very few normal users are capable of understanding the significance of that, yet we happily provide them an input field for nsec like it's something acceptable!

This is, BTW, the only signer I'm aware of that hardens memory with `mlock`; there's nothing close to that in normal clients and probably never will be there:

https://laantungir.net/git/laantungir/n_signer

I've recently had an experience of explaining why pasting nsec should never be practiced with ordinary clients, why it's not the same thing as a changeable password—yet this person pasted it anyway to "fix" something: Armada Android client was failing to publish a NIP-65 relay list. This will never change: if there's a wrong button, it will be pressed for stupid reasons, many times.

I think the "nsec SHOULD never be used directly in clients; NIP-46 and NIP-07 SHOULD be used instead" should be written in some NIP already. With blood.

#security #devstr
:POLICE: A critical security vuln was fixed in Ditto Android that would allow an attacker to steal your nsec by getting you to tap an evil URL. :wisp_sad:

A new version has been released onto Zapstore and Google Play. UPDATE DITTO ANDROID IMMEDIATELY. :POLICE: :POLICE: :POLICE:

Ditto on web and iOS are unaffected. The issue only affects Android because it was a problem in the Android link handler. People using Amber are unaffected by nsec theft but should upgrade anyway because the attack is still arbitrary code injection via evil URL.

What does an evil URL look like? It contains JavaScript code inside of the URL. The path was not being escaped properly, so it could break out and run any script. The fixed version completely changes the way native code triggers UI navigation (event-driven) so we never inject JS code into the UI at all anymore.

Huge shout out and thank you to for connecting me to the team behind https://v12.sh/ who discovered this vuln, and huge shout and and thank you to them for responsibly disclosing it to us. 🙏 They also discovered some other issues we patched in this release, but the evil URL is by far the worst.