CBC mode eliminates a weakness of Electronic Code Book (ECB) mode by allowing identical plaintext blocks to be encrypted to different ciphertext blocks. This is possible by the XOR-ing of an IV with the initial plaintext block so that every plaintext block in the chain is XOR'd with a different value before encryption. If IVs are reused, then identical plaintexts would be encrypted to identical ciphertexts. However, even if IVs are not identical but are predictable, then they still break the security of CBC mode against Chosen Plaintext Attacks (CPA).
CBC mode is a commonly used mode of operation for a block cipher. It works by XOR-ing an IV with the initial block of a plaintext prior to encryption and then XOR-ing each successive block of plaintext with the previous block of ciphertext before encryption.
When used properly, CBC mode provides security against chosen plaintext attacks. Having an unpredictable IV is a crucial underpinning of this. See [REF-1171].
Scope | Impact | Likelihood |
---|---|---|
Confidentiality | Read Application Data Note: If the IV is not properly initialized, data that is encrypted can be compromised and leak information. |
References | Description |
---|---|
CVE-2020-5408 | encryption functionality in an authentication framework uses a fixed null IV with CBC mode, allowing attackers to decrypt traffic in applications that use this functionality |
CVE-2017-17704 | messages for a door-unlocking product use a fixed IV in CBC mode, which is the same after each restart |
CVE-2017-11133 | application uses AES in CBC mode, but the pseudo-random secret and IV are generated using math.random, which is not cryptographically strong. |
CVE-2007-3528 | Blowfish-CBC implementation constructs an IV where each byte is calculated modulo 8 instead of modulo 256, resulting in less than 12 bits for the effective IV length, and less than 4096 possible IV values. |
CVE-2011-3389 | BEAST attack in SSL 3.0 / TLS 1.0. In CBC mode, chained initialization vectors are non-random, allowing decryption of HTTPS traffic using a chosen plaintext attack. |
Name | Organization | Date | Date release | Version |
---|---|---|---|---|
CLASP | Draft 3 |
Name | Organization | Date | Comment |
---|---|---|---|
Eric Dalci | Cigital | updated Time_of_Introduction | |
CWE Content Team | MITRE | updated Background_Details, Common_Consequences, Functional_Areas, Relationships, Taxonomy_Mappings | |
CWE Content Team | MITRE | updated Common_Consequences | |
CWE Content Team | MITRE | updated References, Relationships | |
CWE Content Team | MITRE | updated Demonstrative_Examples, Potential_Mitigations | |
CWE Content Team | MITRE | updated Relationships | |
CWE Content Team | MITRE | updated Applicable_Platforms, Demonstrative_Examples | |
CWE Content Team | MITRE | updated Demonstrative_Examples | |
CWE Content Team | MITRE | updated Relationships | |
CWE Content Team | MITRE | updated Background_Details, Common_Consequences, Demonstrative_Examples, Description, Modes_of_Introduction, Name, Observed_Examples, Potential_Mitigations, References, Relationships | |
CWE Content Team | MITRE | updated Description, Maintenance_Notes, Name, References | |
CWE Content Team | MITRE | updated Relationships | |
CWE Content Team | MITRE | updated Relationships | |
CWE Content Team | MITRE | updated Applicable_Platforms | |
CWE Content Team | MITRE | updated Detection_Factors, Modes_of_Introduction, Relationships, Time_of_Introduction | |
CWE Content Team | MITRE | updated Mapping_Notes |