CVE-2020-18897

7.8 HIGH

📋 TL;DR

This use-after-free vulnerability in libpff allows attackers to cause denial of service or execute arbitrary code by processing a malicious PFF (Personal Folder File) file. It affects any application that uses vulnerable versions of libpff to parse Outlook PST/OST files. Users and systems processing untrusted PFF files are at risk.

💻 Affected Systems

Products:
  • libyal libpff
Versions: All versions before 20180623
Operating Systems: All platforms where libpff is used
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects applications that use libpff to parse PFF files. Common in forensic tools and file analysis utilities.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution with the privileges of the application using libpff, potentially leading to full system compromise.

🟠

Likely Case

Application crash causing denial of service, potentially corrupting data being processed.

🟢

If Mitigated

Limited to denial of service if memory protections like ASLR are enabled, but still disruptive.

🌐 Internet-Facing: MEDIUM - Risk exists if applications process PFF files from untrusted internet sources, but requires file upload/processing capability.
🏢 Internal Only: LOW - Primarily affects forensic/analysis tools rather than production services, limited to users processing malicious files.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires crafting a malicious PFF file and getting it processed by vulnerable software. Proof-of-concept exists in GitHub issues.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 20180623 and later

Vendor Advisory: https://github.com/libyal/libpff/issues/61

Restart Required: No

Instructions:

1. Update libpff to version 20180623 or later. 2. Recompile any applications using libpff. 3. Replace existing libpff libraries with patched version.

🔧 Temporary Workarounds

Restrict PFF file processing

all

Limit processing of PFF files to trusted sources only

Use memory protection controls

linux

Enable ASLR and other memory protection mechanisms

echo 2 > /proc/sys/kernel/randomize_va_space

🧯 If You Can't Patch

  • Isolate systems using libpff from processing untrusted files
  • Implement strict file validation and sandboxing for PFF processing

🔍 How to Verify

Check if Vulnerable:

Check libpff version: pffinfo --version or check library version in /usr/lib/

Check Version:

pffinfo --version 2>/dev/null || strings /usr/lib/libpff* | grep -i version

Verify Fix Applied:

Verify version is 20180623 or later and test with known malicious PFF files

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing PFF files
  • Memory access violation errors in application logs

Network Indicators:

  • Unusual file uploads with .pst/.ost extensions
  • Network transfers of PFF files to analysis systems

SIEM Query:

source="application.log" AND ("segmentation fault" OR "access violation") AND ("pff" OR "pst" OR "ost")

🔗 References

📤 Share & Export