« Volver al listado

CVE-2026-24783

Estado: AnalizadaAlta (7.5)—

soroban-fixed-point-math is a fixed-point math library for Soroban smart contacts. In versions 1.3.0 and 1.4.0, the `mulDiv(x, y, z)` function incorrectly handled cases where both the intermediate product $x * y$ and the divisor $z$ were negative. The logic assumed that if the intermediate product was negative, the final result must also be negative, neglecting the sign of $z$. This resulted in rounding being applied in the wrong direction for cases where both $x * y$ and $z$ were negative.

Leer descripción completaMostrar menos

The functions most at risk are `fixed_div_floor` and `fixed_div_ceil`, as they often use non-constant numbers as the divisor $z$ in `mulDiv`. This error is present in all signed `FixedPoint` and `SorobanFixedPoint` implementations, including `i64`, `i128`, and `I256`. Versions 1.3.1 and 1.4.1 contain a patch. No known workarounds for this issue are available.

CVSS

Probabilidad de explotación (EPSS)

EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).

🎯 Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

CWE-682 (incorrecto cálculo de datos) en librería expuesta remotamente. Acceso red sin autenticación (PR:N) pero bajo impacto de integridad (I:H) sugiere manipulación de datos en cálculos, no ejecución de código. La pista T1190 es conservadora ante la falta de detalles de explotación real.

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

🛡️ Mitigaciones ATT&CK que cubren estas técnicas

Tecnologías afectadas (1)

CWE

Referencias

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-24783",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-24783",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-01-28T21:08:58.618891Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security-advisories@github.com",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 7.5,
          "attackVector": "NETWORK",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "NONE"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "security-advisories@github.com",
      "affectedData": [
        {
          "vendor": "script3",
          "product": "soroban-fixed-point-math",
          "versions": [
            {
              "status": "affected",
              "version": "= 1.4.0"
            },
            {
              "status": "affected",
              "version": "= 1.3.0"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-01-27T22:15:57.433",
  "references": [
    {
      "url": "https://github.com/script3/soroban-fixed-point-math/commit/c9233f7094198a49ed66a4d75786a8a3755c936a",
      "tags": [
        "Patch"
      ],
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/script3/soroban-fixed-point-math/releases/tag/v1.3.1",
      "tags": [
        "Product",
        "Release Notes"
      ],
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/script3/soroban-fixed-point-math/releases/tag/v1.4.1",
      "tags": [
        "Product",
        "Release Notes"
      ],
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/script3/soroban-fixed-point-math/security/advisories/GHSA-x5m4-43jf-hh65",
      "tags": [
        "Vendor Advisory"
      ],
      "source": "security-advisories@github.com"
    }
  ],
  "vulnStatus": "Analyzed",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security-advisories@github.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-682"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "soroban-fixed-point-math is a fixed-point math library for Soroban smart contacts. In versions 1.3.0 and 1.4.0, the `mulDiv(x, y, z)` function incorrectly handled cases where both the intermediate product $x * y$ and the divisor $z$ were negative. The logic assumed that if the intermediate product was negative, the final result must also be negative, neglecting the sign of $z$. This resulted in rounding being applied in the wrong direction for cases where both $x * y$ and $z$ were negative. The functions most at risk are `fixed_div_floor` and `fixed_div_ceil`, as they often use non-constant numbers as the divisor $z$ in `mulDiv`.  This error is present in all signed `FixedPoint` and `SorobanFixedPoint` implementations, including `i64`, `i128`, and `I256`. Versions 1.3.1 and 1.4.1 contain a patch. No known workarounds for this issue are available."
    },
    {
      "lang": "es",
      "value": "soroban-fixed-point-math es una librería de matemáticas de punto fijo para contratos inteligentes de Soroban. En las versiones 1.3.0 y 1.4.0, la función 'mulDiv(x, y, z)' manejó incorrectamente los casos en que tanto el producto intermedio $x * y$ como el divisor $z$ eran negativos. La lógica asumía que si el producto intermedio era negativo, el resultado final también debía ser negativo, ignorando el signo de $z$. Esto resultó en que el redondeo se aplicara en la dirección incorrecta para los casos en que tanto $x * y$ como $z$ eran negativos. Las funciones con mayor riesgo son 'fixed_div_floor' y 'fixed_div_ceil', ya que a menudo usan números no constantes como el divisor $z$ en 'mulDiv'. Este error está presente en todas las implementaciones firmadas de 'FixedPoint' y 'SorobanFixedPoint', incluyendo 'i64', 'i128' e 'I256'. Las versiones 1.3.1 y 1.4.1 contienen un parche. No se conocen soluciones alternativas disponibles para este problema."
    }
  ],
  "lastModified": "2026-06-17T10:23:35.253",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:script3:soroban-fixed-point-math:1.3.0:*:*:*:*:rust:*:*",
              "vulnerable": true,
              "matchCriteriaId": "BFBA3A8B-B607-418C-86A3-15AFD0F3A903"
            },
            {
              "criteria": "cpe:2.3:a:script3:soroban-fixed-point-math:1.4.0:*:*:*:*:rust:*:*",
              "vulnerable": true,
              "matchCriteriaId": "48B58A8B-A909-4A41-B0F3-0E9CD0824255"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "security-advisories@github.com"
}