The remote host is affected by the vulnerability described in GLSA-202210-35 (Mozilla Thunderbird: Multiple Vulnerabilities)
Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Starting with version 17.1.0-rc.1, improperly formed beacon events can disrupt or impede the matrix-js-sdk from functioning properly, potentially impacting the consumer’s ability to process data safely. Note that the matrix-js-sdk can appear to be operating normally but be excluding or corrupting runtime data presented to the consumer.
This is patched in matrix-js-sdk v19.7.0. Redacting applicable events, waiting for the sync processor to store data, and restarting the client are possible workarounds. Alternatively, redacting the applicable events and clearing all storage will fix the further perceived issues. Downgrading to an unaffected version, noting that such a version may be subject to other vulnerabilities, will additionally resolve the issue. (CVE-2022-39236)
Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Prior to version 19.7.0, an attacker cooperating with a malicious homeserver can construct messages appearing to have come from another person.
Such messages will be marked with a grey shield on some platforms, but this may be missing in others. This attack is possible due to the matrix-js-sdk implementing a too permissive key forwarding strategy on the receiving end. Starting with version 19.7.0, the default policy for accepting key forwards has been made more strict in the matrix-js-sdk. matrix-js-sdk will now only accept forwarded keys in response to previously issued requests and only from own, verified devices. The SDK now sets a trusted
flag on the decrypted message upon decryption, based on whether the key used to decrypt the message was received from a trusted source. Clients need to ensure that messages decrypted with a key with trusted = false
are decorated appropriately, for example, by showing a warning for such messages. This attack requires coordination between a malicious homeserver and an attacker, and those who trust your homeservers do not need a workaround. (CVE-2022-39249)
Matrix JavaScript SDK is the Matrix Client-Server software development kit (SDK) for JavaScript. Prior to version 19.7.0, an attacker cooperating with a malicious homeserver could interfere with the verification flow between two users, injecting its own cross-signing user identity in place of one of the users’ identities. This would lead to the other device trusting/verifying the user identity under the control of the homeserver instead of the intended one. The vulnerability is a bug in the matrix-js-sdk, caused by checking and signing user identities and devices in two separate steps, and inadequately fixing the keys to be signed between those steps. Even though the attack is partly made possible due to the design decision of treating cross-signing user identities as Matrix devices on the server side (with their device ID set to the public part of the user identity key), no other examined implementations were vulnerable.
Starting with version 19.7.0, the matrix-js-sdk has been modified to double check that the key signed is the one that was verified instead of just referencing the key by ID. An additional check has been made to report an error when one of the device ID matches a cross-signing key. As this attack requires coordination between a malicious homeserver and an attacker, those who trust their homeservers do not need a particular workaround. (CVE-2022-39250)
Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Prior to version 19.7.0, an attacker cooperating with a malicious homeserver can construct messages that legitimately appear to have come from another person, without any indication such as a grey shield. Additionally, a sophisticated attacker cooperating with a malicious homeserver could employ this vulnerability to perform a targeted attack in order to send fake to-device messages appearing to originate from another user. This can allow, for example, to inject the key backup secret during a self-verification, to make a targeted device start using a malicious key backup spoofed by the homeserver. These attacks are possible due to a protocol confusion vulnerability that accepts to-device messages encrypted with Megolm instead of Olm. Starting with version 19.7.0, matrix-js-sdk has been modified to only accept Olm-encrypted to-device messages. Out of caution, several other checks have been audited or added. This attack requires coordination between a malicious home server and an attacker, so those who trust their home servers do not need a workaround.
(CVE-2022-39251)
A same-origin policy violation could have allowed the theft of cross-origin URL entries, leaking the result of a redirect, via <code>performance.getEntries()</code>. (CVE-2022-42927)
Certain types of allocations were missing annotations that, if the Garbage Collector was in a specific state, could have lead to memory corruption and a potentially exploitable crash. (CVE-2022-42928)
If a website called <code>window.print()</code> in a particular way, it could cause a denial of service of the browser, which may persist beyond browser restart depending on the user’s session restore settings.
(CVE-2022-42929)
Mozilla developers Ashley Hale and the Mozilla Fuzzing Team reported memory safety bugs present in Thunderbird 102.3. Some of these bugs showed evidence of memory corruption and we presume that with enough effort some of these could have been exploited to run arbitrary code. (CVE-2022-42932)
Note that Nessus has not tested for these issues but has instead relied only on the application’s self-reported version number.
#%NASL_MIN_LEVEL 80900
#
# (C) Tenable, Inc.
#
# @NOAGENT@
#
# The descriptive text and package checks in this plugin were
# extracted from Gentoo Linux Security Advisory GLSA 202210-35.
#
# The advisory text is Copyright (C) 2001-2021 Gentoo Foundation, Inc.
# and licensed under the Creative Commons - Attribution / Share Alike
# license. See http://creativecommons.org/licenses/by-sa/3.0/
#
include('compat.inc');
if (description)
{
script_id(166745);
script_version("1.3");
script_set_attribute(attribute:"plugin_modification_date", value:"2023/10/06");
script_cve_id(
"CVE-2022-39236",
"CVE-2022-39249",
"CVE-2022-39250",
"CVE-2022-39251",
"CVE-2022-42927",
"CVE-2022-42928",
"CVE-2022-42929",
"CVE-2022-42932"
);
script_name(english:"GLSA-202210-35 : Mozilla Thunderbird: Multiple Vulnerabilities");
script_set_attribute(attribute:"synopsis", value:
"");
script_set_attribute(attribute:"description", value:
"The remote host is affected by the vulnerability described in GLSA-202210-35 (Mozilla Thunderbird: Multiple
Vulnerabilities)
- Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Starting with version 17.1.0-rc.1,
improperly formed beacon events can disrupt or impede the matrix-js-sdk from functioning properly,
potentially impacting the consumer's ability to process data safely. Note that the matrix-js-sdk can
appear to be operating normally but be excluding or corrupting runtime data presented to the consumer.
This is patched in matrix-js-sdk v19.7.0. Redacting applicable events, waiting for the sync processor to
store data, and restarting the client are possible workarounds. Alternatively, redacting the applicable
events and clearing all storage will fix the further perceived issues. Downgrading to an unaffected
version, noting that such a version may be subject to other vulnerabilities, will additionally resolve the
issue. (CVE-2022-39236)
- Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Prior to version 19.7.0, an attacker
cooperating with a malicious homeserver can construct messages appearing to have come from another person.
Such messages will be marked with a grey shield on some platforms, but this may be missing in others. This
attack is possible due to the matrix-js-sdk implementing a too permissive key forwarding strategy on the
receiving end. Starting with version 19.7.0, the default policy for accepting key forwards has been made
more strict in the matrix-js-sdk. matrix-js-sdk will now only accept forwarded keys in response to
previously issued requests and only from own, verified devices. The SDK now sets a `trusted` flag on the
decrypted message upon decryption, based on whether the key used to decrypt the message was received from
a trusted source. Clients need to ensure that messages decrypted with a key with `trusted = false` are
decorated appropriately, for example, by showing a warning for such messages. This attack requires
coordination between a malicious homeserver and an attacker, and those who trust your homeservers do not
need a workaround. (CVE-2022-39249)
- Matrix JavaScript SDK is the Matrix Client-Server software development kit (SDK) for JavaScript. Prior to
version 19.7.0, an attacker cooperating with a malicious homeserver could interfere with the verification
flow between two users, injecting its own cross-signing user identity in place of one of the users'
identities. This would lead to the other device trusting/verifying the user identity under the control of
the homeserver instead of the intended one. The vulnerability is a bug in the matrix-js-sdk, caused by
checking and signing user identities and devices in two separate steps, and inadequately fixing the keys
to be signed between those steps. Even though the attack is partly made possible due to the design
decision of treating cross-signing user identities as Matrix devices on the server side (with their device
ID set to the public part of the user identity key), no other examined implementations were vulnerable.
Starting with version 19.7.0, the matrix-js-sdk has been modified to double check that the key signed is
the one that was verified instead of just referencing the key by ID. An additional check has been made to
report an error when one of the device ID matches a cross-signing key. As this attack requires
coordination between a malicious homeserver and an attacker, those who trust their homeservers do not need
a particular workaround. (CVE-2022-39250)
- Matrix Javascript SDK is the Matrix Client-Server SDK for JavaScript. Prior to version 19.7.0, an attacker
cooperating with a malicious homeserver can construct messages that legitimately appear to have come from
another person, without any indication such as a grey shield. Additionally, a sophisticated attacker
cooperating with a malicious homeserver could employ this vulnerability to perform a targeted attack in
order to send fake to-device messages appearing to originate from another user. This can allow, for
example, to inject the key backup secret during a self-verification, to make a targeted device start using
a malicious key backup spoofed by the homeserver. These attacks are possible due to a protocol confusion
vulnerability that accepts to-device messages encrypted with Megolm instead of Olm. Starting with version
19.7.0, matrix-js-sdk has been modified to only accept Olm-encrypted to-device messages. Out of caution,
several other checks have been audited or added. This attack requires coordination between a malicious
home server and an attacker, so those who trust their home servers do not need a workaround.
(CVE-2022-39251)
- A same-origin policy violation could have allowed the theft of cross-origin URL entries, leaking the
result of a redirect, via <code>performance.getEntries()</code>. (CVE-2022-42927)
- Certain types of allocations were missing annotations that, if the Garbage Collector was in a specific
state, could have lead to memory corruption and a potentially exploitable crash. (CVE-2022-42928)
- If a website called <code>window.print()</code> in a particular way, it could cause a denial of service of
the browser, which may persist beyond browser restart depending on the user's session restore settings.
(CVE-2022-42929)
- Mozilla developers Ashley Hale and the Mozilla Fuzzing Team reported memory safety bugs present in
Thunderbird 102.3. Some of these bugs showed evidence of memory corruption and we presume that with enough
effort some of these could have been exploited to run arbitrary code. (CVE-2022-42932)
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://security.gentoo.org/glsa/202210-35");
script_set_attribute(attribute:"see_also", value:"https://bugs.gentoo.org/show_bug.cgi?id=873667");
script_set_attribute(attribute:"see_also", value:"https://bugs.gentoo.org/show_bug.cgi?id=878315");
script_set_attribute(attribute:"solution", value:
"All Mozilla Thunderbird users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose >=mail-client/thunderbird-102.4.0
All Mozilla Thunderbird binary users should upgrade to the latest version:
# emerge --sync
# emerge --ask --oneshot --verbose >=mail-client/thunderbird-bin-102.4.0");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2022-42932");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2022/09/28");
script_set_attribute(attribute:"patch_publication_date", value:"2022/10/31");
script_set_attribute(attribute:"plugin_publication_date", value:"2022/10/31");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:thunderbird");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:gentoo:linux:thunderbird-bin");
script_set_attribute(attribute:"cpe", value:"cpe:/o:gentoo:linux");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Gentoo Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2022-2023 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/Gentoo/release", "Host/Gentoo/qpkg-list");
exit(0);
}
include('qpkg.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item('Host/Gentoo/release')) audit(AUDIT_OS_NOT, 'Gentoo');
if (!get_kb_item('Host/Gentoo/qpkg-list')) audit(AUDIT_PACKAGE_LIST_MISSING);
var flag = 0;
var packages = [
{
'name' : 'mail-client/thunderbird',
'unaffected' : make_list("ge 102.4.0", "lt 102.0.0"),
'vulnerable' : make_list("lt 102.4.0")
},
{
'name' : 'mail-client/thunderbird-bin',
'unaffected' : make_list("ge 102.4.0", "lt 102.0.0"),
'vulnerable' : make_list("lt 102.4.0")
}
];
foreach package( packages ) {
if (isnull(package['unaffected'])) package['unaffected'] = make_list();
if (isnull(package['vulnerable'])) package['vulnerable'] = make_list();
if (qpkg_check(package: package['name'] , unaffected: package['unaffected'], vulnerable: package['vulnerable'])) flag++;
}
# This plugin has a different number of unaffected and vulnerable versions for
# one or more packages. To ensure proper detection, a separate line should be
# used for each fixed/vulnerable version pair.
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : qpkg_report_get()
);
exit(0);
}
else
{
qpkg_tests = list_uniq(qpkg_tests);
var tested = qpkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'Mozilla Thunderbird');
}
Vendor | Product | Version | CPE |
---|---|---|---|
gentoo | linux | thunderbird | p-cpe:/a:gentoo:linux:thunderbird |
gentoo | linux | thunderbird-bin | p-cpe:/a:gentoo:linux:thunderbird-bin |
gentoo | linux | cpe:/o:gentoo:linux |
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-39236
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-39249
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-39250
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-39251
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42927
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42928
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42929
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42932
bugs.gentoo.org/show_bug.cgi?id=873667
bugs.gentoo.org/show_bug.cgi?id=878315
security.gentoo.org/glsa/202210-35