CVE-2023-47104

9.8 CRITICAL

📋 TL;DR

This vulnerability in tinyfiledialogs allows shell command injection through insufficient input sanitization of shell metacharacters in dialog titles and messages. Attackers can execute arbitrary commands on systems running vulnerable versions. Any application using tinyfiledialogs before version 3.15.0 is affected.

💻 Affected Systems

Products:
  • tinyfiledialogs (tiny file dialogs)
Versions: All versions before 3.15.0
Operating Systems: All platforms where tinyfiledialogs is used (Windows, Linux, macOS)
Default Config Vulnerable: ⚠️ Yes
Notes: Any application that uses tinyfiledialogs library with user-controlled input in dialog parameters is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with remote code execution leading to data theft, ransomware deployment, or complete system takeover.

🟠

Likely Case

Local privilege escalation or arbitrary command execution in the context of the vulnerable application.

🟢

If Mitigated

Limited impact with proper input validation and sandboxing, potentially only denial of service.

🌐 Internet-Facing: MEDIUM - Requires user interaction with dialog boxes but could be triggered via web applications.
🏢 Internal Only: HIGH - Internal applications using this library could be exploited by malicious insiders or compromised accounts.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires user interaction with dialog boxes but is technically simple once triggered.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.15.0 and later

Vendor Advisory: https://sourceforge.net/p/tinyfiledialogs/code/ci/ac9f9f6d8cdf45ca8d9b4cf1f201ee472301e114/

Restart Required: Yes

Instructions:

1. Update tinyfiledialogs to version 3.15.0 or later. 2. Recompile any applications using the library. 3. Restart affected applications.

🔧 Temporary Workarounds

Input Sanitization

all

Implement strict input validation to filter shell metacharacters before passing data to tinyfiledialogs functions.

Implement regex filtering: [^a-zA-Z0-9\s\-\.\,\!\?\@\#\$\%\^\&\*\(\)\[\]\{\}\|\;\:\'\"\<\>\/\\\+\=\_\~\`]

🧯 If You Can't Patch

  • Implement application-level input validation to strip or escape shell metacharacters before calling tinyfiledialogs functions.
  • Run applications with minimal privileges and in sandboxed environments to limit potential damage.

🔍 How to Verify

Check if Vulnerable:

Check if application uses tinyfiledialogs library version < 3.15.0 by examining dependencies or build configurations.

Check Version:

Check library headers or version strings in compiled binaries; no universal command available.

Verify Fix Applied:

Verify tinyfiledialogs version is 3.15.0 or later in application dependencies or library files.

📡 Detection & Monitoring

Log Indicators:

  • Unusual process spawns from dialog-related applications
  • Shell command execution patterns from GUI applications

Network Indicators:

  • Outbound connections from dialog applications to unexpected destinations

SIEM Query:

Process creation where parent process is known dialog application and command contains metacharacters like backticks or dollar signs

🔗 References

📤 Share & Export