CVE-2017-5545: libimobiledevice libplist out-of-bounds read in plistutil

CVE-2017-5545 · Severity: critical · CVSS 9.1 · Published 2017-01-21

libplist is a library used to handle Apple Property List (plist) files, commonly used for communicating with iOS devices. A vulnerability in the library's utility tool allows an attacker to provide a specially crafted, malformed file that can crash the application or expose sensitive information from the computer's memory. This could lead to service disruptions or the unauthorized disclosure of private data during file processing.

Vendors: Libimobiledevice.

Quick answers

Is CVE-2017-5545 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2017-5545 being exploited in the wild.
How severe is CVE-2017-5545?
Critical severity, with a CVSS score of 9.1, published 21 January 2017.
Which products and versions are affected?
libimobiledevice libplist through 1.12.
Is there a fix for CVE-2017-5545?
A patch was published on 2017-01-20: Fix committed to libplist repository Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2017-5545 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2017-5545?
Check whether you run Libimobiledevice Libplist. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

An out-of-bounds (OOB) heap buffer read exists in the 'plistutil' tool within libplist versions up to and including 1.12. The vulnerability is located in the main function of tools/plistutil.c, where the application performs a memory comparison (memcmp) or similar read operation on input data without verifying that the file size is sufficient (minimum 8 bytes). A remote attacker can exploit this by providing a truncated or malformed Apple Property List file, leading to a process crash (Denial of Service) or the leakage of sensitive information from the heap memory. The issue was addressed by adding a check to ensure the input file size is at least 8 bytes before processing.

Affected products

  • libimobiledevice libplist through 1.12

Timeline

  • 2017-01-17: disclosed: Issue reported on GitHub by user zhunki
  • 2017-01-20: patched: Fix committed to libplist repository
  • 2017-01-21: advisory: NVD publication date
  • 2020-04-02: patched: Debian LTS security update released

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.