CVE-2020-14382
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2...
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.8
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-787
- Updated
- 2026-11-02
CVE List No score
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
CVE-2020-14382- Updated
- 2026-11-02
EUVDEUVD-2020-6522 No score
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
EUVD-2020-6522- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-v8mw-xqhr-2vqp No score
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2...
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
GHSA-v8mw-xqhr-2vqp- Weakness
- CWE-787
- Updated
- 2026-11-02
OSVALPINE-CVE-2020-14382
7.8
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
ALPINE-CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2020-14382
7.8
CVE-2020-14382 does not affect BellSoft software
- Record
BELL-CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 8 moreShow less
OSV
7.8
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-14382
7.8
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
DEBIAN-CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2020:4542
7.8
Red Hat Security Advisory: cryptsetup security, bug fix, and enhancement update
- Record
RHSA-2020:4542- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2020:4900
7.8
Red Hat Security Advisory: cryptsetup security update
- Record
RHSA-2020:4900- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2021:0258
7.8
Red Hat Security Advisory: cryptsetup security update
- Record
RHSA-2021:0258- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-14382
7.8
A vulnerability was found in upstream release cryptsetup-2.2.0 where, there's a bug in LUKS2 format validation code, that is effectively invoked on every device/image presenting itself as LUKS2 container. The bug is in segments validation code in file 'lib/luks2/luks2_json_metadata.c' in function hdr_validate_segments(struct crypt_device *cd, json_object *hdr_jobj) where the code does not check for possible overflow on memory allocation used for intervals array (see statement "intervals = malloc(first_backup * sizeof(*intervals));"). Due to the bug, library can be tricked to expect such allocation was successful but for far less memory then originally expected. Later it may read data FROM image crafted by an attacker and actually write such data BEYOND allocated memory.
- Record
UBUNTU-CVE-2020-14382- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10704-1 No score
cryptsetup-2.4.1-1.1 on GA media
These are all security issues fixed in the cryptsetup-2.4.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10704-1- Updated
- 2026-11-02
OSVUSN-4493-1 No score
cryptsetup vulnerability
It was discovered that cryptsetup incorrectly handled certain inputs. An attacker could possibly use this issue to execute arbitrary code.
- Record
USN-4493-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
cryptsetupAlpine:v3.11 |
before 2.2.2-r1 | 2.2.2-r1 |
cryptsetupAlpine:v3.12 |
before 2.3.2-r1 | 2.3.2-r1 |
cryptsetupAlpine:v3.13 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.14 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.15 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.16 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.17 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.18 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.19 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.20 |
before 2.3.4-r0 | 2.3.4-r0 |
Show 63 moreShow less
| Package | Affected | Fixed |
|---|---|---|
cryptsetupAlpine:v3.21 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.22 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.23 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupAlpine:v3.24 |
before 2.3.4-r0 | 2.3.4-r0 |
cryptsetupDebian:12 |
before 2:2.3.4-1 | 2:2.3.4-1 |
cryptsetupDebian:13 |
before 2:2.3.4-1 | 2:2.3.4-1 |
cryptsetupDebian:14 |
before 2:2.3.4-1 | 2:2.3.4-1 |
cryptsetup-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-debugsourceRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-develRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-libs-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-reencrypt-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
integritysetup-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
veritysetup-debuginfoRed Hat:enterprise_linux:8::appstream |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetupRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-debuginfoRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-debugsourceRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-libsRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-libs-debuginfoRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-reencryptRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-reencrypt-debuginfoRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
integritysetupRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
integritysetup-debuginfoRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
veritysetupRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
veritysetup-debuginfoRed Hat:enterprise_linux:8::baseos |
before 0:2.3.3-2.el8 | 0:2.3.3-2.el8 |
cryptsetup-debuginfoRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-debugsourceRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-develRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-libs-debuginfoRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-reencrypt-debuginfoRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
integritysetup-debuginfoRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
veritysetup-debuginfoRed Hat:rhel_eus:8.1::appstream |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetupRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-debuginfoRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-debugsourceRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-libsRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-libs-debuginfoRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-reencryptRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-reencrypt-debuginfoRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
integritysetupRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
integritysetup-debuginfoRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
veritysetupRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
veritysetup-debuginfoRed Hat:rhel_eus:8.1::baseos |
before 0:2.2.0-2.el8_1.1 | 0:2.2.0-2.el8_1.1 |
cryptsetup-debuginfoRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-debugsourceRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-develRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-libs-debuginfoRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-reencrypt-debuginfoRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
integritysetup-debuginfoRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
veritysetup-debuginfoRed Hat:rhel_eus:8.2::appstream |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetupRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-debuginfoRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-debugsourceRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-libsRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-libs-debuginfoRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-reencryptRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetup-reencrypt-debuginfoRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
integritysetupRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
integritysetup-debuginfoRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
veritysetupRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
veritysetup-debuginfoRed Hat:rhel_eus:8.2::baseos |
before 0:2.2.2-1.el8_2.1 | 0:2.2.2-1.el8_2.1 |
cryptsetupUbuntu:20.04:LTS |
before 2:2.2.2-3ubuntu2.2, plus listed versions 2:2.2.0-3ubuntu12:2.2.1-1ubuntu12:2.2.2-1ubuntu12:2.2.2-2ubuntu12:2.2.2-3ubuntu12:2.2.2-3ubuntu2 |
2:2.2.2-3ubuntu2.2 |
cryptsetupopenSUSE:Tumbleweed |
before 2.4.1-1.1 | 2.4.1-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, products | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-14382 is a high vulnerability (CVSS 7.8) in Cryptsetup Project Cryptsetup, published September 3, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.16%, the 67th percentile. Fixed in cryptsetup 2.2.2-r1.
References
bugzilla.redhat.com/show_bug.cgi?id=1874712
usn.ubuntu.com/4493-1
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OJTQ4KSVCW2NMSU5WFVPOHY46WMNF4OB
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/TD6YSD63LLRRC4WQ7DJLSXWNUCY6FWBM
nvd.nist.gov/vuln/detail/CVE-2020-14382
lists.fedoraproject.org/archives/list/[email protected]/message/OJTQ4KSVCW2NMSU5WFVPOHY46WMNF4OB
Show 23 moreShow less
lists.fedoraproject.org/archives/list/[email protected]/message/TD6YSD63LLRRC4WQ7DJLSXWNUCY6FWBM
github.com/advisories/GHSA-v8mw-xqhr-2vqp
security.alpinelinux.org/vuln/CVE-2020-14382
docs.bell-sw.com/security/cves/CVE-2020-14382
security-tracker.debian.org/tracker/CVE-2020-14382
access.redhat.com/errata/RHSA-2020:4542
access.redhat.com/security/updates/classification
access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.3_release_notes
bugzilla.redhat.com/show_bug.cgi?id=1743891
bugzilla.redhat.com/show_bug.cgi?id=1785748
bugzilla.redhat.com/show_bug.cgi?id=1796826
security.access.redhat.com/data/csaf/v2/advisories/2020/rhsa-2020_4542.json
access.redhat.com/security/cve/CVE-2020-14382
cve.org/CVERecord?id=CVE-2020-14382
gitlab.com/cryptsetup/cryptsetup/-/blob/master/docs/v2.3.4-ReleaseNotes
access.redhat.com/errata/RHSA-2020:4900
security.access.redhat.com/data/csaf/v2/advisories/2020/rhsa-2020_4900.json
access.redhat.com/errata/RHSA-2021:0258
security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_0258.json
ubuntu.com/security/CVE-2020-14382
gitlab.com/cryptsetup/cryptsetup/-/merge_requests/102
ubuntu.com/security/notices/USN-4493-1
suse.com/security/cve/CVE-2020-14382