CVE-2020-12801 tdf#93389: keep encryption information for autorecovered MS formats
authorMike Kaganski <mike.kaganski@collabora.com>
Fri, 3 Jan 2020 19:40:07 +0000 (22:40 +0300)
committerBastien Roucariès <rouca@debian.org>
Fri, 29 Dec 2023 09:39:36 +0000 (09:39 +0000)
commitdb9aeb4e9573e29b31fd43f2f1dda3c70e27984c
tree74ba6b1993f84cfd7644acf6190a1f323adbaa26
parentc95ec7d8bf0a452130abb234aebb13f8b18aa4bd
CVE-2020-12801 tdf#93389: keep encryption information for autorecovered MS formats

The autorecovery data is stored in ODF, regardless of the original
document format. When restoring, type detection generates ODF data,
which is stored in the media descriptor attached to document, even
after real filter was restored (see AutoRecovery::implts_openDocs).
If real filter is not ODF, then at the save time, it doesn't find
necessary information in encryption data, and makes not encrypted
package.

This patch adds both MS binary data, and OOXML data, to existing
ODF data for recovered password-protected documents (regardless of
their real filter).

TODO: only add required information to encryption data: pass real
filter name to DocPasswordHelper::requestAndVerifyDocPassword from
AutoRecovery::implts_openDocs.

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86201
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit dd198398b6e5c84ab1255a90ef96e6445b66a64f)

Conflicts:
comphelper/source/misc/docpasswordhelper.cxx

Change-Id: I4717f067ad3c40167312b99eefef5584a467bfed
(cherry picked from commit 6017cdff264afc3b98beeba1330d6df28102fe7a)

origin: https://github.com/LibreOffice/core/commit/5b6c866d522e7eef636a5fa4048c39c1ea60e466.patch

Gbp-Pq: Name 0096-CVE-2020-12801-tdf-93389-keep-encryption-information.patch
comphelper/source/misc/docpasswordhelper.cxx
package/source/xstor/owriteablestream.cxx
package/source/xstor/owriteablestream.hxx
package/source/xstor/xstorage.cxx
sfx2/source/appl/appopen.cxx