← Back to CVE Explorer

CVE-2026-68558

Full vulnerability record from the local CVENow database.

Description

Wekan is open source kanban built with Meteor. From 8.36 until 9.74, the outgoing webhook Integration URL validator in models/integrations.js checked only the literal URL.hostname against regular expressions, so DNS names such as 169-254-169-254.nip.io passed that first-line check. The delivery path's fetchSafe guard already blocked the reported IPv4 destination, but its separate IPv4-only resolver and duplicated blocklist created inconsistent all-address-family enforcement and drift risk between input-time and connection-time validation. Version 9.74 makes server/lib/ssrfGuard.js resolve all addresses with `dns.lookup({ all: true })`, validate every result through the shared isIpBlocked logic, pin the connection, and block redirects. This issue is fixed in version 9.74.

Severity
HIGH
CVSS score
8.5 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-08-19 20:17:20.910000
Last modified
2026-10-26 10:10:00.140000
View original CVE JSON
{
  "id": "CVE-2026-68558",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-19T20:17:20.910",
  "lastModified": "2026-10-26T10:10:00.140",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Wekan is open source kanban built with Meteor. From 8.36 until 9.74, the outgoing webhook Integration URL validator in models/integrations.js checked only the literal URL.hostname against regular expressions, so DNS names such as 169-254-169-254.nip.io passed that first-line check. The delivery path's fetchSafe guard already blocked the reported IPv4 destination, but its separate IPv4-only resolver and duplicated blocklist created inconsistent all-address-family enforcement and drift risk between input-time and connection-time validation. Version 9.74 makes server/lib/ssrfGuard.js resolve all addresses with `dns.lookup({ all: true })`, validate every result through the shared isIpBlocked logic, pin the connection, and block redirects. This issue is fixed in version 9.74."
    },
    {
      "lang": "es",
      "value": "Wekan es un kanban de código abierto construido con Meteor. Desde la versión 8.36 hasta la 9.74, el validador de URL de integración de webhook saliente en models/integrations.js comprobaba solo el URL.hostname literal contra expresiones regulares, por lo que nombres DNS como 169-254-169-254.nip.io pasaban esa comprobación de primera línea. La protección fetchSafe de la ruta de entrega ya bloqueaba el destino IPv4 reportado, pero su resolutor separado solo para IPv4 y su lista de bloqueo duplicada crearon una aplicación inconsistente para todas las familias de direcciones y un riesgo de deriva entre la validación en tiempo de entrada y en tiempo de conexión. La versión 9.74 hace que server/lib/ssrfGuard.js resuelva todas las direcciones con dns.lookup({ all: true }), valide cada resultado a través de la lógica compartida isIpBlocked, fije la conexión y bloquee las redirecciones. Este problema está solucionado en la versión 9.74."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "wekan",
          "product": "wekan",
          "versions": [
            {
              "version": ">= 8.36, < 9.74",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N",
          "baseScore": 8.5,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "CHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "LOW",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 3.1,
        "impactScore": 4.7
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-19T19:44:41.579228Z",
          "id": "CVE-2026-68558",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-918"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/wekan/wekan/commit/ef845fe4a0adb82af436313310939cd48c0b1347",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/releases/tag/v9.74",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/security/advisories/GHSA-66m2-4wfr-c45p",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/security/advisories/GHSA-66m2-4wfr-c45p",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}