CVE-2020-14382

NameCVE-2020-14382
DescriptionA 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, bugtraq, EDB, Metasploit, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, Mageia, GitHub code/issues, web search, more)
NVD severitymedium
Debian Bugs969471

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
cryptsetup (PTS)stretch2:1.7.3-4fixed
buster2:2.1.0-5+deb10u2fixed
bullseye, sid2:2.3.4-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
cryptsetupsourcestretch(not affected)
cryptsetupsourcebuster(not affected)
cryptsetupsource(unstable)2:2.3.4-1969471

Notes

[buster] - cryptsetup <not-affected> (Vulnerable code not present)
[stretch] - cryptsetup <not-affected> (Vulnerable code not present)
https://bugzilla.redhat.com/show_bug.cgi?id=1874712
https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/102
Fixed by: https://gitlab.com/cryptsetup/cryptsetup/-/commit/52f5cb8cedf22fb3e14c744814ec8af7614146c7
Improvement: https://gitlab.com/cryptsetup/cryptsetup/-/commit/46ee71edcd13e1dad50815ad65c28779aa6f7503
Improvement: https://gitlab.com/cryptsetup/cryptsetup/-/commit/752c9a52798f11d3b765b673ebaa3058eb25316e
Introduced with: https://gitlab.com/cryptsetup/cryptsetup/-/commit/a7f80a27701450e40ef37e2224577f1a0c98cf0f (v2.2.0-rc0)

Search for package or bug name: Reporting problems