[Pkg-xmpp-devel] Bug#1026430: profanity: If an OMEMO msg to 2+ recipients & 1 recipient’s pubkey is bad, the msg is sent anyway (a logistical mess)

debbug.profanity at sideload.33mail.com debbug.profanity at sideload.33mail.com
Tue Dec 20 00:28:22 GMT 2022


Package: profanity
Version: 0.13.1-1~bpo11+1
Severity: normal
X-Debbugs-Cc: debbug.profanity at sideload.33mail.com

If a message is sent in a chat room with multiple recipients, and
Profanity fails to get a handle on the public key for one of the
recipients, Profanity simply neglects to use the key it needs and
sends the msg anyway to all recipients. So the recipient whose pubkey
was neglected receives a non-decryptable message which then manifests
into a bogus error falsely telling the recipient that their XMPP
client does not support OMEMO (which apparently is the text portion of
the message).

Scenario:

  Suppose Rob & Rennae are recipients of Sam’s msg, and Rennae’s
  pubkey was lost. Rob receives the msg okay but he does not likely
  know that the msg failed for Rennae. Sam expected both recipients to
  receive the same msg at roughly the same time. So Sam is forced to
  scramble to solve the pubkey problem and quickly send a copy to
  Rennae. But Sam does not want Rob to recieve duplicate copy of the
  same message, so Sam must resend the msg just to Rennae. Sam also
  must tell Rennae that he botched the transmission, and also tell
  Rennae that Rob already received the same message. Rennae must trust
  that Sam did not alter the message. This nightmare of a bug causes
  embarrassment for Sam and demoralizes Rob & Rennae as far as XMPP
  goes.

There are actually 4 bugs here:

1. (already reported) Profanity failed to find the public key for
recipient even though Profanity recently just used the pubkey
successfully. This bug has already been reported separately (bug
1024899)

2. All or nothing policy needed-- when a msg is known to fail for a
group, Profanity should not send the msg to anyone. Profanity did not
even warn the sender of the problem; it just took the liberty of
encrypting the msg to X recipients and transmitting it to Y
recipients, where X > Y. Only after the transmission does Profanity
inform the sender of the problem. This creates a logistical mess for
the sender. In the scenario given, Profanity should either refuse the
send the message entirely, or it should give Sam an informed choice to
send the message anyway knowing that delivery will be botched and
problematic.

3. When a msg is expected to fail for one recipient among many,
Profanity should not send it to recipients where it is known to
fail. Notwithstanding bug 2 above, even if a sender opts to send a
message anyway, there is still no reason to transmit the msg to the
recipient who Profanity knows cannot decrypt it.

4. The error msg seen by the recipient is (apparently) the text
portion of the encrypted payload, which generically tells the
recipient that their client does not support OMEMO. The receiving
client simply presents that text to the user of that client. This
message is bogus. Just because Profanity cannot find the pubkey does
not mean the receiving client does not support OMEMO. The text msg
should not take liberties of making speculative or unlikely claims
about what the issue is. Profanity also should not assume when
phrasing the text that the bug or deficiency is necessarily on the
recipient’s side.


-- System Information:
Debian Release: 11.5
  APT prefers stable-updates
  APT policy: (990, 'stable-updates'), (990, 'stable-security'), (990, 'testing'), (990, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-19-amd64 (SMP w/2 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages profanity depends on:
ii  libc6                      2.31-13+deb11u5
ii  libcurl3-gnutls            7.74.0-1.3+deb11u3
ii  libgcrypt20                1.8.7-6
ii  libgdk-pixbuf-2.0-0        2.42.2+dfsg-1+deb11u1
ii  libglib2.0-0               2.66.8-1
ii  libgpgme11                 1.14.0-1+b2
ii  libgtk-3-0                 3.24.24-4+deb11u2
ii  libncursesw6               6.2+20201114-2
ii  libnotify4                 0.7.9-3
ii  libotr5                    4.1.1-4
ii  libpython3.9               3.9.2-1
ii  libreadline8               8.1-1
ii  libsignal-protocol-c2.3.2  2.3.3-1
ii  libsqlite3-0               3.34.1-3
ii  libstrophe0                0.12.2-1~bpo11+1
ii  libtinfo6                  6.2+20201114-2

profanity recommends no packages.

profanity suggests no packages.

-- no debconf information



More information about the Pkg-xmpp-devel mailing list