CVE-2017-2910

8.8 HIGH

📋 TL;DR

An out-of-bounds write vulnerability in libxls 2.0 allows remote code execution when processing malicious Excel files. Attackers can craft XLS files that trigger memory corruption, potentially compromising systems that parse these files. This affects any application using the vulnerable libxls library.

💻 Affected Systems

Products:
  • libxls
Versions: libxls 2.0
Operating Systems: All platforms running libxls
Default Config Vulnerable: ⚠️ Yes
Notes: Any application that uses libxls to parse Excel files is vulnerable. This includes custom applications, data processing tools, and file conversion utilities.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full remote code execution with attacker gaining complete control of the affected system, potentially leading to data theft, ransomware deployment, or lateral movement.

🟠

Likely Case

Application crash leading to denial of service, with potential for remote code execution if exploit is successful.

🟢

If Mitigated

Application crash with no code execution if exploit fails or protections like ASLR/DEP are effective.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the victim to open a malicious XLS file. The vulnerability is well-documented with public proof-of-concept available.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: libxls 2.1.0

Vendor Advisory: https://github.com/libxls/libxls/releases/tag/v2.1.0

Restart Required: Yes

Instructions:

1. Download libxls 2.1.0 or later from GitHub. 2. Replace the vulnerable libxls library. 3. Recompile any applications using libxls. 4. Restart affected services.

🔧 Temporary Workarounds

Disable XLS file processing

all

Block or disable processing of XLS files in applications using libxls

Use alternative libraries

all

Replace libxls with alternative Excel parsing libraries that are not vulnerable

🧯 If You Can't Patch

  • Implement strict file upload validation to block suspicious XLS files
  • Deploy application sandboxing or containerization to limit exploit impact

🔍 How to Verify

Check if Vulnerable:

Check if libxls version is 2.0. Run: ldd /path/to/application | grep libxls and check version

Check Version:

strings /usr/lib/libxls.so | grep 'libxls version'

Verify Fix Applied:

Verify libxls version is 2.1.0 or later. Run: strings /usr/lib/libxls.so | grep 'libxls version'

📡 Detection & Monitoring

Log Indicators:

  • Application crashes when processing XLS files
  • Unexpected memory access errors in application logs

Network Indicators:

  • Inbound XLS file transfers to vulnerable systems
  • Outbound connections after XLS file processing

SIEM Query:

source="application.log" AND "segmentation fault" AND "xls" OR source="application.log" AND "memory corruption" AND "xls"

🔗 References

📤 Share & Export