Disclosure summary
# Planka migration retains an unbounded aggregate of attacker-served attachments and can OOM the API ## Summary The always-registered Planka migration lets any ordinary user select a Planka server. Although Vikunja caps each JSON response, pagination loop, and attachment independently, it has no aggregate job budget. The conversion stage downloads every advertised non-link attachment and keeps every byte slice live until the complete hierarchy is inserted. A public attacker server can therefore drive memory beyond any finite service allocation. The final Docker run preserved default SSRF policy and OOM-killed the healthy API after five individually valid 20 MiB attachment responses. ## Impact and affected scope - **Type:** Resource Exhaustion Dos - **Affected component:** POST /api/v2/migration/planka/migrate; Asynchronous migration.requested worker for the Planka migrator - **Preconditions:** A low-privilege Vikunja user supplies an attacker-operated public Planka URL and token. That server controls project/board/card/attachment counts and streams each attachment body at or below Vikunja's normal per-file limit. - **Verified revision:** `d66ef3d1a39c6f7289593059a1a34afd1d059260` o
Source-specific records & product guidance
Sources retain their own attribution and scoring. Follow the original record to confirm affected versions, fixed releases, and configuration conditions.
GitHub reviewed advisories · GHSA-wq92-8x3r-fm38
Open original source · Updated Oct 09, 2026
Vikunja: Planka migration retains an unbounded aggregate of attacker-served attachments and can OOM the API
GitHub reviewed package advisory. Version ranges and patches are independently attributed; executable descriptions and source code locations are excluded.
Source severity: HIGH
| Vendor | Product / association | Version / bounds |
|---|---|---|
| go | code.vikunja.io/api | >= 2.5.0, < 2.6.0 |
Indexed product associations
These cached associations support search and triage. Confirm applicability, platform conditions, and fixed versions in the original record.
| Vendor | Product | Version | Source / relationship |
|---|---|---|---|
| go | code.vikunja.io/api | >= 2.5.0, < 2.6.0 | GHSA-wq92-8x3r-fm38 / vendor-listed |
Original records & references
- NIST NVD record
- CVE Program record
- GitHub — Reviewed advisory
GitHub repository matches
Repository matches are links and GitHub-supplied metadata only. They are not verified working proof-of-concept code. Each supported query is bounded to ten pages and at most 1,000 indexed results. This is not a complete index of GitHub or public exploit research. Coverage can also be limited by provider availability, rate limits, rejected metadata, incomplete search results, manual review, and the recorded refresh time.
No stored repository matches
Repository discovery has not recorded an update for this CVE yet.
Discovery progress
0 of 3 discovery queries finished. GitHub returned 0 indexed results; 0 malformed or disallowed results were rejected.
No discovery update has been recorded for this CVE.
View all 0 stored repository matches
PUBLISHED 2026-10-09T20:53:24+00:00
MODIFIED 2026-10-09T20:53:26+00:00
INGESTED 2026-10-11T00:45:43+00:00