Bug 1874712 (CVE-2020-14382) - CVE-2020-14382 cryptsetup: Out-of-bounds write when validating segments
Summary: CVE-2020-14382 cryptsetup: Out-of-bounds write when validating segments
Keywords:
Status: NEW
Alias: CVE-2020-14382
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1872294 1877370 1877845 1874714 1875199
Blocks: 1872428
TreeView+ depends on / blocked
 
Reported: 2020-09-02 04:33 UTC by Huzaifa S. Sidhpurwala
Modified: 2020-09-23 03:57 UTC (History)
9 users (show)

Fixed In Version: cryptsetup 2.3.4
Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in the way cryptsetup parses encrypted images with invalid segments. A local attacker could use this flaw to crash an application compiled with cryptsetup or in some cases cause arbitrary code execution when parsing specially crafted encrypted images.
Clone Of:
Environment:
Last Closed:


Attachments (Terms of Use)

Description Huzaifa S. Sidhpurwala 2020-09-02 04:33:37 UTC
As per the reporter:

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!

Reference: https://bugzilla.redhat.com/show_bug.cgi?id=1872294
Upstream commit: https://gitlab.com/cryptsetup/cryptsetup/-/commit/52f5cb8cedf22fb3e14c744814ec8af7614146c7

Comment 1 Huzaifa S. Sidhpurwala 2020-09-02 04:33:41 UTC
Acknowledgments:

Name: Tobias Stoeckmann

Comment 3 Huzaifa S. Sidhpurwala 2020-09-02 07:59:49 UTC
Statement:

This flaw was introduced in upstream release cryptsetup-2.2.0, with inclusion of LUKS2 re-encryption code. This feature is not available in Red Hat Enterprise Linux 7, therefore it is not affected by this flaw.

Comment 4 Huzaifa S. Sidhpurwala 2020-09-03 02:11:45 UTC
Created cryptsetup tracking bugs for this issue:

Affects: fedora-all [bug 1875199]

Comment 5 Huzaifa S. Sidhpurwala 2020-09-03 03:01:16 UTC
Upstream merge-request: https://gitlab.com/cryptsetup/cryptsetup/-/merge_requests/102

Comment 6 Huzaifa S. Sidhpurwala 2020-09-07 03:42:24 UTC
External References:

https://gitlab.com/cryptsetup/cryptsetup/-/blob/master/docs/v2.3.4-ReleaseNotes

Comment 8 guazhang@redhat.com 2020-09-16 04:07:41 UTC
Hello

Any update for the bug?  the bug has added to errata[1] and it block the errata testing.

https://errata.devel.redhat.com/advisory/55325


Note You need to log in before you can comment on or make changes to this bug.