Blame
| c4f02d | Samuli Seppänen | 2025-01-29 08:37:37 | 1 | ## CVE-2024-13454 - Easy-RSA with OpenSSL 3 may create a CA private key using 3DES |
| 2 | ||||
| 4ecfdf | Samuli Seppänen | 2025-02-27 10:14:43 | 3 | Using Easy-RSA after version 3.0.5 and before 3.2.0 on systems using |
| 4 | OpenSSL 3 will incorrectly encrypt password protected CA private keys |
|||
| 5 | using cipher:des-ede3-cbc when using the `easyrsa build-ca` command. |
|||
| 6 | The algorithm expected to be used is cipher:aes-256-cbc. |
|||
| c4f02d | Samuli Seppänen | 2025-01-29 08:37:37 | 7 | |
| 4ecfdf | Samuli Seppänen | 2025-02-27 10:14:43 | 8 | How to fix the private CA key: |
| 9 | - Use the `easyrsa set-pass ca` command. This will re-encrypt the |
|||
| 10 | private CA key using the proper cipher algorithm. This will work |
|||
| 11 | on all Easy-RSA versions. |
|||
| c4f02d | Samuli Seppänen | 2025-01-29 08:37:37 | 12 | |
| 4ecfdf | Samuli Seppänen | 2025-02-27 10:14:43 | 13 | Additional recommendation: |
| c4f02d | Samuli Seppänen | 2025-01-29 08:37:37 | 14 | - Upgrade to Easy-RSA version 3.2.0 or newer. |
| 15 | ||||
| 4ecfdf | Samuli Seppänen | 2025-02-27 10:14:43 | 16 | Command `set-pass` was introduced in Easy-RSA-3.1.2 (https://github.com/OpenVPN/easy-rsa/pull/756). |
| 17 | ||||
| 18 | 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: |
|||
| 19 | ||||
| 20 | **Note**: Easy-RSA support for OpenSSL v3 was first introduced in Easy-RSA `v3.1.0` (https://github.com/OpenVPN/easy-rsa/pull/492). |
|||
| 21 | ||||
| 22 | | | | | |
|||
| 23 | |-|-|-| |
|||
| 24 | | EasyRSA-3.0.5: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 25 | | EasyRSA-3.0.6: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 26 | | EasyRSA-3.0.7: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 27 | | EasyRSA-3.0.8: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 28 | | EasyRSA-3.0.9: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 29 | | **EasyRSA-3.1.0**: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 30 | | EasyRSA-3.1.1: | **build-ca**: des-ede3-cbc - | **set-rsa-pass**: aes-256-cbc |
|||
| 31 | | EasyRSA-3.1.2: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 32 | | EasyRSA-3.1.3: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 33 | | EasyRSA-3.1.4: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 34 | | EasyRSA-3.1.5: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 35 | | EasyRSA-3.1.6: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 36 | | EasyRSA-3.1.7: | **build-ca**: des-ede3-cbc - | **set-pass**: aes-256-cbc |
|||
| 37 | | **EasyRSA-3.2.0**: | **build-ca**: aes-256-cbc - | **set-pass**: aes-256-cbc |
|||
| 38 | | EasyRSA-3.2.1: | **build-ca**: aes-256-cbc - | **set-pass**: aes-256-cbc |
|||
| 39 | ||||
| 40 | 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. |
|||
| 41 | ||||
| 42 | 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`. |
