Skip to content

SSB-DB#get() is decrypting messages by default

High
christianbundy published GHSA-mpgr-2cx9-327h Jun 11, 2020

Package

npm ssb-db, ssb-server (npm)

Description

Impact

What kind of vulnerability is it? Who is impacted?

Servers running SSB-DB 20.0.0 (which is packaged with SSB-Server 16.0.0) must upgrade immediately.

There is no evidence that other SSB apps are vulnerable or that this problem has been exploited in the wild.

The get() method is supposed to only decrypt messages when you explicitly ask it to, but there's a bug where it's decrypting any message that it can. This means that it's returning the decrypted content of private messages, which a malicious peer could use to get access to private data. This only affects peers running [email protected] who also have private messages, and is only known to be exploitable if you're also running SSB-OOO (default in SSB-Server), which exposes a thin wrapper around get() to anonymous peers.

Patches

Has the problem been patched? What versions should users upgrade to?

Yes, please upgrade to SSB-DB 20.0.1 (or SSB-Server 16.0.1) immediately.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

You may be able to disable the most obvious attack vector, SSB-OOO, by disabling the plugin, but you should upgrade immediately anyway.

For more information

If you have any questions or comments about this advisory, open an issue in SSB-DB

Severity

High

CVE ID

CVE-2020-4045

Weaknesses

No CWEs

Credits