## CVE-2024-13454 - Easy-RSA with OpenSSL 3 may create a CA private key using 3DES

Using Easy-RSA after version 3.0.5 and before 3.2.0 on systems using
OpenSSL 3 will incorrectly encrypt password protected CA private keys
using cipher:des-ede3-cbc when using the `easyrsa build-ca` command.
The algorithm expected to be used is cipher:aes-256-cbc.

How to fix the private CA key:
- Use the `easyrsa set-pass ca` command.  This will re-encrypt the
   private CA key using the proper cipher algorithm.  This will work
   on all Easy-RSA versions.

Additional recommendation:
- Upgrade to Easy-RSA version 3.2.0 or newer.

Command `set-pass` was introduced in Easy-RSA-3.1.2 (https://github.com/OpenVPN/easy-rsa/pull/756).

Using **OpenSSL v3** with each version of Easy-RSA command `build-ca`, then using Easy-RSA command `set-pass ca` to re-encrypt the CA key with a new password:

**Note**: Easy-RSA support for OpenSSL v3 was first introduced in Easy-RSA `v3.1.0` (https://github.com/OpenVPN/easy-rsa/pull/492).

 | | | |
 |-|-|-|
 | EasyRSA-3.0.5: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.0.6: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.0.7: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.0.8: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.0.9: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | **EasyRSA-3.1.0**: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.1.1: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc
 | EasyRSA-3.1.2: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.1.3: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.1.4: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.1.5: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.1.6: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.1.7: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc
 | **EasyRSA-3.2.0**: | **build-ca**: aes-256-cbc - | **set-pass**: aes-256-cbc
 | EasyRSA-3.2.1: | **build-ca**: aes-256-cbc - | **set-pass**: aes-256-cbc

OpenSSL version `1.1.0l` and `1.1.1w` has been tested and no issues were found.  OpenSSL 1.x is not expected to have this issue.

However the `set-rsa-pass` and `set-ec-pass` were found to change the CA key format from PKCS12 to PKC8 for Easy-RSA versions `3.0.9` through `3.1.7`. In all cases, the cipher used was `aes-256-cbc`.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9