Why still VMWare still uses the old OpenSSL 1.1.1 and even an old version 1.1.1q?
It is an open source project, literary just download the source and compile.
There is a newer version 1.1.1t and many versions were released where there have been many CVE fixes!
Why not using the new version 3.1?
Tested with version 17.02
Any way we can update the OpenSSL manually or should we wait for VMWare to update the libraries?
I tried the latest version 3.1 from other product which has the same dll names, but VMWare fails to load
![]()
Some details.
In the host, locations:
C:\Program Files (x86)\VMware\VMware Workstation and C:\Program Files (x86)\VMware\VMware VIX\Workstation-17.0.0\32bit
The files in libcrypto-1_1.dll and libssl-1_1.dll are still version 1.1.1q
In the location C:\Program Files (x86)\VMware\VMware VIX\Workstation-17.0.0\64bit
The files libcrypto-1_1-x64.dll and libssl-1_1-x64.dll are also still version 1.1.1q The lastest version is 1.1.1t
In the guest, vmware tools, location C:\Program Files\VMware\VMware Tools\VMware VGAuth
The files libcrypto-3-x64.dll and libssl-3-x64.dll are still versions 3.0.7 The lastest version is 3.1.0
Security fixes in version 1.1.1t
Changes between 1.1.1s and 1.1.1t [7 Feb 2023]
*) Fixed X.400 address type confusion in X.509 GeneralName.
There is a type confusion vulnerability relating to X.400 address processing
inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING
but subsequently interpreted by GENERAL_NAME_cmp as an ASN1_TYPE. This
vulnerability may allow an attacker who can provide a certificate chain and
CRL (neither of which need have a valid signature) to pass arbitrary
pointers to a memcmp call, creating a possible read primitive, subject to
some constraints. Refer to the advisory for more information. Thanks to
David Benjamin for discovering this issue. (CVE-2023-0286)
This issue has been fixed by changing the public header file definition of
GENERAL_NAME so that x400Address reflects the implementation. It was not
possible for any existing application to successfully use the existing
definition; however, if any application references the x400Address field
(e.g. in dead code), note that the type of this field has changed. There is
no ABI change.
[Hugo Landau]
*) Fixed Use-after-free following BIO_new_NDEF.
The public API function BIO_new_NDEF is a helper function used for
streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL
to support the SMIME, CMS and PKCS7 streaming capabilities, but may also
be called directly by end user applications.
The function receives a BIO from the caller, prepends a new BIO_f_asn1
filter BIO onto the front of it to form a BIO chain, and then returns
the new head of the BIO chain to the caller. Under certain conditions,
for example if a CMS recipient public key is invalid, the new filter BIO
is freed and the function returns a NULL result indicating a failure.
However, in this case, the BIO chain is not properly cleaned up and the
BIO passed by the caller still retains internal pointers to the previously
freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO
then a use-after-free will occur. This will most likely result in a crash.
(CVE-2023-0215)
[Viktor Dukhovni, Matt Caswell]
*) Fixed Double free after calling PEM_read_bio_ex.
The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and
decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload
data. If the function succeeds then the "name_out", "header" and "data"
arguments are populated with pointers to buffers containing the relevant
decoded data. The caller is responsible for freeing those buffers. It is
possible to construct a PEM file that results in 0 bytes of payload data.
In this case PEM_read_bio_ex() will return a failure code but will populate
the header argument with a pointer to a buffer that has already been freed.
If the caller also frees this buffer then a double free will occur. This
will most likely lead to a crash.
The functions PEM_read_bio() and PEM_read() are simple wrappers around
PEM_read_bio_ex() and therefore these functions are also directly affected.
These functions are also called indirectly by a number of other OpenSSL
functions including PEM_X509_INFO_read_bio_ex() and
SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL
internal uses of these functions are not vulnerable because the caller does
not free the header argument if PEM_read_bio_ex() returns a failure code.
(CVE-2022-4450)
[Kurt Roeckx, Matt Caswell]
*) Fixed Timing Oracle in RSA Decryption.
A timing based side channel exists in the OpenSSL RSA Decryption
implementation which could be sufficient to recover a plaintext across
a network in a Bleichenbacher style attack. To achieve a successful
decryption an attacker would have to be able to send a very large number
of trial messages for decryption. The vulnerability affects all RSA padding
modes: PKCS#1 v1.5, RSA-OEAP and RSASVE.
(CVE-2022-4304)
[Dmitry Belyavsky, Hubert Kario]
Changes between 1.1.1r and 1.1.1s [1 Nov 2022]
*) Fixed a regression introduced in 1.1.1r version not refreshing the
certificate data to be signed before signing the certificate.
[Gibeom Gwon]
Changes between 1.1.1q and 1.1.1r [11 Oct 2022]
*) Fixed the linux-mips64 Configure target which was missing the
SIXTY_FOUR_BIT bn_ops flag. This was causing heap corruption on that
platform.
[Adam Joseph]
*) Fixed a strict aliasing problem in bn_nist. Clang-14 optimisation was
causing incorrect results in some cases as a result.
[Paul Dale]
*) Fixed SSL_pending() and SSL_has_pending() with DTLS which were failing to
report correct results in some cases
[Matt Caswell]
*) Fixed a regression introduced in 1.1.1o for re-signing certificates with
different key sizes
[Todd Short]
*) Added the loongarch64 target
[Shi Pujin]
*) Fixed a DRBG seed propagation thread safety issue
[Bernd Edlinger]
*) Fixed a memory leak in tls13_generate_secret
[Bernd Edlinger]
*) Fixed reported performance degradation on aarch64. Restored the
implementation prior to commit 2621751 ("aes/asm/aesv8-armx.pl: avoid
32-bit lane assignment in CTR mode") for 64bit targets only, since it is
reportedly 2-17% slower and the silicon errata only affects 32bit targets.
The new algorithm is still used for 32 bit targets.
[Bernd Edlinger]
*) Added a missing header for memcmp that caused compilation failure on some
platforms
[Gregor Jasny]
### Changes between 3.0.7 and 3.0.8 [7 Feb 2023]
* Fixed NULL dereference during PKCS7 data verification.
A NULL pointer can be dereferenced when signatures are being
verified on PKCS7 signed or signedAndEnveloped data. In case the hash
algorithm used for the signature is known to the OpenSSL library but
the implementation of the hash algorithm is not available the digest
initialization will fail. There is a missing check for the return
value from the initialization function which later leads to invalid
usage of the digest API most likely leading to a crash.
([CVE-2023-0401])
PKCS7 data is processed by the SMIME library calls and also by the
time stamp (TS) library calls. The TLS implementation in OpenSSL does
not call these functions however third party applications would be
affected if they call these functions to verify signatures on untrusted
data.
*Tomáš Mráz*
* Fixed X.400 address type confusion in X.509 GeneralName.
There is a type confusion vulnerability relating to X.400 address processing
inside an X.509 GeneralName. X.400 addresses were parsed as an ASN1_STRING
but the public structure definition for GENERAL_NAME incorrectly specified
the type of the x400Address field as ASN1_TYPE. This field is subsequently
interpreted by the OpenSSL function GENERAL_NAME_cmp as an ASN1_TYPE rather
than an ASN1_STRING.
When CRL checking is enabled (i.e. the application sets the
X509_V_FLAG_CRL_CHECK flag), this vulnerability may allow an attacker to
pass arbitrary pointers to a memcmp call, enabling them to read memory
contents or enact a denial of service.
([CVE-2023-0286])
*Hugo Landau*
* Fixed NULL dereference validating DSA public key.
An invalid pointer dereference on read can be triggered when an
application tries to check a malformed DSA public key by the
EVP_PKEY_public_check() function. This will most likely lead
to an application crash. This function can be called on public
keys supplied from untrusted sources which could allow an attacker
to cause a denial of service attack.
The TLS implementation in OpenSSL does not call this function
but applications might call the function if there are additional
security requirements imposed by standards such as FIPS 140-3.
([CVE-2023-0217])
*Shane Lontis, Tomáš Mráz*
* Fixed Invalid pointer dereference in d2i_PKCS7 functions.
An invalid pointer dereference on read can be triggered when an
application tries to load malformed PKCS7 data with the
d2i_PKCS7(), d2i_PKCS7_bio() or d2i_PKCS7_fp() functions.
The result of the dereference is an application crash which could
lead to a denial of service attack. The TLS implementation in OpenSSL
does not call this function however third party applications might
call these functions on untrusted data.
([CVE-2023-0216])
*Tomáš Mráz*
* Fixed Use-after-free following BIO_new_NDEF.
The public API function BIO_new_NDEF is a helper function used for
streaming ASN.1 data via a BIO. It is primarily used internally to OpenSSL
to support the SMIME, CMS and PKCS7 streaming capabilities, but may also
be called directly by end user applications.
The function receives a BIO from the caller, prepends a new BIO_f_asn1
filter BIO onto the front of it to form a BIO chain, and then returns
the new head of the BIO chain to the caller. Under certain conditions,
for example if a CMS recipient public key is invalid, the new filter BIO
is freed and the function returns a NULL result indicating a failure.
However, in this case, the BIO chain is not properly cleaned up and the
BIO passed by the caller still retains internal pointers to the previously
freed filter BIO. If the caller then goes on to call BIO_pop() on the BIO
then a use-after-free will occur. This will most likely result in a crash.
([CVE-2023-0215])
*Viktor Dukhovni, Matt Caswell*
* Fixed Double free after calling PEM_read_bio_ex.
The function PEM_read_bio_ex() reads a PEM file from a BIO and parses and
decodes the "name" (e.g. "CERTIFICATE"), any header data and the payload
data. If the function succeeds then the "name_out", "header" and "data"
arguments are populated with pointers to buffers containing the relevant
decoded data. The caller is responsible for freeing those buffers. It is
possible to construct a PEM file that results in 0 bytes of payload data.
In this case PEM_read_bio_ex() will return a failure code but will populate
the header argument with a pointer to a buffer that has already been freed.
If the caller also frees this buffer then a double free will occur. This
will most likely lead to a crash.
The functions PEM_read_bio() and PEM_read() are simple wrappers around
PEM_read_bio_ex() and therefore these functions are also directly affected.
These functions are also called indirectly by a number of other OpenSSL
functions including PEM_X509_INFO_read_bio_ex() and
SSL_CTX_use_serverinfo_file() which are also vulnerable. Some OpenSSL
internal uses of these functions are not vulnerable because the caller does
not free the header argument if PEM_read_bio_ex() returns a failure code.
([CVE-2022-4450])
*Kurt Roeckx, Matt Caswell*
* Fixed Timing Oracle in RSA Decryption.
A timing based side channel exists in the OpenSSL RSA Decryption
implementation which could be sufficient to recover a plaintext across
a network in a Bleichenbacher style attack. To achieve a successful
decryption an attacker would have to be able to send a very large number
of trial messages for decryption. The vulnerability affects all RSA padding
modes: PKCS#1 v1.5, RSA-OEAP and RSASVE.
([CVE-2022-4304])
*Dmitry Belyavsky, Hubert Kario*
* Fixed X.509 Name Constraints Read Buffer Overflow.
A read buffer overrun can be triggered in X.509 certificate verification,
specifically in name constraint checking. The read buffer overrun might
result in a crash which could lead to a denial of service attack.
In a TLS client, this can be triggered by connecting to a malicious
server. In a TLS server, this can be triggered if the server requests
client authentication and a malicious client connects.
([CVE-2022-4203])
*Viktor Dukhovni*
* Fixed X.509 Policy Constraints Double Locking security issue.
If an X.509 certificate contains a malformed policy constraint and
policy processing is enabled, then a write lock will be taken twice
recursively. On some operating systems (most widely: Windows) this
results in a denial of service when the affected process hangs. Policy
processing being enabled on a publicly facing server is not considered
to be a common setup.
([CVE-2022-3996])
*Paul Dale*
* Our provider implementations of `OSSL_FUNC_KEYMGMT_EXPORT` and
`OSSL_FUNC_KEYMGMT_GET_PARAMS` for EC and SM2 keys now honor
`OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT` as set (and
default to `POINT_CONVERSION_UNCOMPRESSED`) when exporting
`OSSL_PKEY_PARAM_PUB_KEY`, instead of unconditionally using
`POINT_CONVERSION_COMPRESSED` as in previous 3.x releases.
For symmetry, our implementation of `EVP_PKEY_ASN1_METHOD->export_to`
for legacy EC and SM2 keys is also changed similarly to honor the
equivalent conversion format flag as specified in the underlying
`EC_KEY` object being exported to a provider, when this function is
called through `EVP_PKEY_export()`.
*Nicola Tuveri*
And there are new version 3.1 https://www.openssl.org/news/cl31.txt and 3.2 https://www.openssl.org/news/changelog.txt
I would not try to 'retrofit' newer open source components into a commercial product without the consent of VMware.
You have no idea whether those newer libraries will break Workstation, and if you try to get help from VMware you'll be told to revert those changes and be admonished for making unauthorized changes to the software. You also have no idea whether Workstation is impacted by those issues. I've found that many times security vulnerabilities in open source libraries may not impact a product due to how they are used. For example, if Workstation doesn't do any of those operations listed, they won't be subject to the bugs.
VMware does seem to have a formal process https://www.vmware.com/security/vsrc.html if you're concerned. It starts with opening a support request. If it's like other vendors, though, you'd better be prepared to show the impact other than just looking at versions and saying "it's not the latest and OMG look at the security issues that were fixed".
Although the things you wrote are the most ridiculous I have ever read when it comes to IT, I really hope it is true (NOT). But here is a hint, not even kids in primary schools will buy it.
So you are claiming using an old version of encrypting communication of an old branch that is reaching its end of life is not a security risk until proven to the contrary? I really hope you know what you are even talking about.
I really wonder, do you even know what is OpenSSL?
BTW talking in aggressive manner will only prove that you have a weak case and no strong argument!
No need to wonder, I do know what OpenSSL is. And as someone who is a 40+ year IT professional and took and passed the CISSP security professional exam, I’m also aware that just because software has a vulnerability does not mean that is exploitable in every use case.
Yes you have a valid question as to why they used these components but very few of here can shed any light about those decisions, if the defects are applicable to VMware’s use of the software, and what plans are. This is a user to user forum with the occasional look in by VMware engineers, complicated by VMware not telling anyone about future plans
If you’re concerned, I still maintain that he best course of action is to raise a support case with VMware or contact their security response team. From experience, your case will be helped if you can find an instance where the vulnerabilities listed can be exploited in Workstation or VMware Tools. Nothing helps change like an actively exploitable vulnerability.
My comment in my prior post about going to VMware with concrete examples of exploits rather than just saying they’re using old components was a bit strong and I do apologize for that.
@jen2 wrote:Although the things you wrote are the most ridiculous I have ever read when it comes to IT, I really hope it is true (NOT). But here is a hint, not even kids in primary schools will buy it.
So you are claiming using an old version of encrypting communication of an old branch that is reaching its end of life is not a security risk until proven to the contrary? I really hope you know what you are even talking about.
I really wonder, do you even know what is OpenSSL?
BTW talking in aggressive manner will only prove that you have a weak case and no strong argument!
A volunteer is trying to help and explain what the process is to get this sorted and that's YOUR reaction?
BTW, you can't drop in an openSSL v3 DLL in place of a v1 one as the API is completely different....
--
Wil
Official answer.
VMware uses supported versions of OpenSSL libraries. The 1.1.1 line is still supported (through later this year), and in fact many VMware products are using the 1.0.2 line (via an extended support contract with OpenSSL) and in the midst of migrating to the 3.0 line. I do not expect much adoption of the 3.1 line due to it having a shorter support lifetime than the 3.0 line's long-term support (3.1's only major feature is moving from FIPS 140-2 to FIPS 140-3).
There is no practical benefit to being on the latest library version (beyond shiny number bragging rights) - latest 1.0.2 / 1.1.1 / 3.0 / 3.1 are all equally secure with suitable patch releases. We do try to update regularly, but the priority for releases is more severe issues (for example, Workstation 17.0.2 includes fixes for CVSS 9.3 issues); we would not delay a release containing critical fixes to include moderate fixes in OpenSSL.
The more important question here is why Workstation is on 1.1.1q instead of the latest 1.1.1t. The answer is that the most severe issues are "moderate" which we expect to address in the next release (for Workstation, major or minor number). Side note: OpenSSL does have one "high" issue related to CRLs, but Workstation does not process CRLs so it does not apply. The official VMware policy is here:
https://www.vmware.com/support/policies/security_response.html
and you can examine OpenSSL's view of severities (in the 1.1.1 line) here:
@Technogeezer @wila I do apologize for my rude reply, but in my defense it was a reaction for calling me an OMG person, I interpreted as calling me stupid and silly, I guess I was wrong.
@kscThanks for the feedback, I will be waiting patiently for the 1.1.1t in new releases. But about the version 3.0 and 3.1, I understand if you want to move to 3.0 as it is the LTS, but you should consider the speed improvement in 3.1 as well.
Don't you just love a schoolyard fight, I made some great friends that way , got my butt kicked once or twice, but **bleep** as I got old,
I miss them and that energy,
Competition is always good for a Noble Soul.
Good Luck guys.
@jen2 wrote:@Technogeezer @wila I do apologize for my rude reply, but in my defense it was a reaction for calling me an OMG person, I interpreted as calling me stupid and silly, I guess I was wrong.
I do apologize for the “OMG”. It was a poor attempt at humor and not directed at you personally. I should have chosen my words better.
And I do agree you have a very valid question and point. Sometimes developers (and organizations) take a “if it ain’t broke, dont fix it” mentality. But “don’t fix it” does lead to development “inertia” where things that should be revisited for improvements aren’t. That includes monitoring open source components for improvements and proactively including them instead of waiting for the exploits to roll in and then patch them (although that still needs to be done as well).
To whom it may concern:
I'm having problems with the Polyglot/Python implementation in Cloud Assembly (aka vRA 8.9.1)
When I try to upload/dependency some modules (like urllib3 & pywinrm) I get this error:
--------------
Running in polyglot!
urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with OpenSSL 1.0.2ze-fips 3 May 2022. See: https://github.com/urllib3/urllib3/issues/2168
-------------
I have tried to fix it in several(possible) ways, with no success, it seems that VMware needs to recompile the whole Polyglot product and provide a patch for the users
I hope someone could help me
Luis Cassaigne (former VMware employee)
@ksc as of version 17,02 VMWare is still using zlib version 1.2.12 I really hope you will update to version 1.2.13 due to the critical CVE-2022-37434 with score 9.8.
And I really hope will update the glib module as you are still using the version 2.48.2 from the year 2016. The current version is 2.76.
The 7zip is still version 18.05 from 2018. there were new releases with performance improvements.
libiconv is still version 1.15 from 2017 the latest version is 1.17
Libintl is still version 0.20.1 there is a new version 0.21.1
Libcurl is still version 7.79 there is a new version 8.1
Libxml2 is still version 2.9..14.9 there is anew version 2.11.4
Thinprint is still version 11 there is a new version 13
Libexpat is still version 2.4.9 there is a new version 2.5.0 includes security fixes
