← Back to CVE Explorer

CVE-2026-68901

Full vulnerability record from the local CVENow database.

Description

Wekan is open source kanban built with Meteor. Prior to 10.38, the /api/boards/:boardId/export, /api/boards/:boardId/attachments/:attachmentId/export, /api/boards/:boardId/export/csv, and /api/boards/:boardId/exportExcel handlers in models/export.js and models/exportExcel.js looked up a user from the attacker-controlled authToken query parameter and immediately called user._id.toString() without checking whether ReactiveCache.getUser() returned undefined. A request for a private board with an unknown token therefore threw a TypeError from an asynchronous route, producing an unhandled rejection that could terminate the Wekan process and deny service to all users. Version 10.38 adds a 401 guard after every export token lookup and wraps export handlers with safeRoute() so unexpected exceptions become controlled responses. This issue is fixed in version 10.38.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-08-19 20:17:21.900000
Last modified
2026-10-26 10:10:00.140000
View original CVE JSON
{
  "id": "CVE-2026-68901",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-19T20:17:21.900",
  "lastModified": "2026-10-26T10:10:00.140",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Wekan is open source kanban built with Meteor. Prior to 10.38, the /api/boards/:boardId/export, /api/boards/:boardId/attachments/:attachmentId/export, /api/boards/:boardId/export/csv, and /api/boards/:boardId/exportExcel handlers in models/export.js and models/exportExcel.js looked up a user from the attacker-controlled authToken query parameter and immediately called user._id.toString() without checking whether ReactiveCache.getUser() returned undefined. A request for a private board with an unknown token therefore threw a TypeError from an asynchronous route, producing an unhandled rejection that could terminate the Wekan process and deny service to all users. Version 10.38 adds a 401 guard after every export token lookup and wraps export handlers with safeRoute() so unexpected exceptions become controlled responses. This issue is fixed in version 10.38."
    },
    {
      "lang": "es",
      "value": "Wekan es un kanban de código abierto construido con Meteor. Antes de la versión 10.38, los manejadores /api/boards/:boardId/export, /api/boards/:boardId/attachments/:attachmentId/export, /api/boards/:boardId/export/csv y /api/boards/:boardId/exportExcel en models/export.js y models/exportExcel.js buscaban un usuario a partir del parámetro de consulta authToken controlado por el atacante e inmediatamente llamaban a user._id.toString() sin verificar si ReactiveCache.getUser() devolvía undefined. Una solicitud para un tablero privado con un token desconocido, por lo tanto, lanzaba un TypeError desde una ruta asíncrona, produciendo un rechazo no manejado que podía terminar el proceso de Wekan y denegar el servicio a todos los usuarios. La versión 10.38 añade una protección 401 después de cada búsqueda de token de exportación y envuelve los manejadores de exportación con safeRoute() para que las excepciones inesperadas se conviertan en respuestas controladas. Este problema está solucionado en la versión 10.38."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "wekan",
          "product": "wekan",
          "versions": [
            {
              "version": "< 10.38",
              "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:U/C:N/I:N/A:H",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-19T19:39:34.384679Z",
          "id": "CVE-2026-68901",
          "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-476"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/wekan/wekan/commit/40de1799aed7c31494579659850578691171d895",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/releases/tag/v10.38",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/security/advisories/GHSA-3gcg-g6rf-w2rx",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/wekan/wekan/security/advisories/GHSA-3gcg-g6rf-w2rx",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}