Skip to content
Heist/ feed
Back to feed
Medium

Wekan: Broken access control in the Excel-export route (`/api/boards/:boardId/exportExcel`)

Type: advisorySources: OSV

Wekan is open source kanban built with Meteor. From 9.57 until 9.74, the /api/boards/:boardId/exportExcel route in models/exportExcel.js called the asynchronous exporterExcel.canExport(user) authorization guard from models/server/ExporterExcel.js without awaiting it. The returned Promise was always truthy, so exporterExcel.build(res) ran even when board.isVisibleBy(user) would deny access, allowing any authenticated non-member to download private board card titles, descriptions, lists, swimlanes, members, and metadata. This issue is fixed in version 9.74.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-68559
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 02:48 UTC · Revision 1

Source evidence

Wekan: Broken access control in the Excel-export route (`/api/boards/:boardId/exportExcel`)

core-osv · Original source

Published 19 Aug 2026, 19:20 UTC

Wekan is open source kanban built with Meteor. From 9.57 until 9.74, the /api/boards/:boardId/exportExcel route in models/exportExcel.js called the asynchronous exporterExcel.canExport(user) authorization guard from models/server/ExporterExcel.js without awaiting it. The returned Promise was always truthy, so exporterExcel.build(res) ran even when board.isVisibleBy(user) would deny access, allowing any authenticated non-member to download private board card titles, descriptions, lists, swimlanes, members, and metadata. This issue is fixed in version 9.74.

osv:CVE-2026-68559
Complete source record
{
  "id": "1e0d179657114bc848e291e631f54755354472ecf477015b8fd193e589e87243",
  "url": "https://osv.dev/vulnerability/CVE-2026-68559",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Wekan: Broken access control in the Excel-export route (`/api/boards/:boardId/exportExcel`)",
    "summary": "Wekan is open source kanban built with Meteor. From 9.57 until 9.74, the /api/boards/:boardId/exportExcel route in models/exportExcel.js called the asynchronous exporterExcel.canExport(user) authorization guard from models/server/ExporterExcel.js without awaiting it. The returned Promise was always truthy, so exporterExcel.build(res) ran even when board.isVisibleBy(user) would deny access, allowing any authenticated non-member to download private board card titles, descriptions, lists, swimlanes, members, and metadata. This issue is fixed in version 9.74.",
    "evidence": "osv:CVE-2026-68559",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-68559",
      "aliases": [
        "CVE-2026-68559",
        "GHSA-mwq8-ccpm-r533"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/wekan/wekan",
              "type": "GIT",
              "events": [
                {
                  "introduced": "a35e5dc12ce38325eafb75a95db20af2df5bb4fe"
                },
                {
                  "fixed": "ca9bcfa4eeaf6293737f038381f4a3e91569f851"
                },
                {
                  "fixed": "7bbd1a3fad5d868fd01d79b5908913e215698e8e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "9.57"
                      },
                      {
                        "fixed": "9.74"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "7bbd1a3fad5d868fd01d79b5908913e215698e8e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "ca9bcfa4eeaf6293737f038381f4a3e91569f851"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v9.74"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v9.73",
            "v9.72",
            "v9.71",
            "v9.70",
            "v9.69",
            "v9.68",
            "v9.67",
            "v9.65",
            "v9.64",
            "v9.63",
            "v9.62",
            "v9.61",
            "v9.60",
            "v9.59",
            "v9.57"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68559.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:25.506274026Z",
      "provider": "osv",
      "references": [
        "https://github.com/wekan/wekan/releases/tag/v9.74",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68559.json",
        "https://github.com/wekan/wekan/security/advisories/GHSA-mwq8-ccpm-r533",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-68559",
        "https://github.com/wekan/wekan/commit/7bbd1a3fad5d868fd01d79b5908913e215698e8e"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-639"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68559.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-68559",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 491997,
  "published_at": "2026-08-19T19:20:32.15+00:00"
}