CVE-2026-57458
validatedZero produced an exploit or a check.GHSA-v3p6-34mc-hj7v ↗EUVD-2026-95991 ↗
description
Vikunja 2.3.0 does not preserve scoped API-token permissions when issuing OAuth-derived session credentials. An attacker who possesses a token allowed to authorize OAuth can obtain credentials for the same account that work beyond the token's assigned scope.
mitigation
Upgrade code.vikunja.io/api to version 2.4.0 or later. Restrict issuance and exposure of scoped API tokens until the update is complete.
fixed in 2.4.0
outcome
Check only, differential: the check fires on the vulnerable build and is silent on the patched one.
source signals
Public signals that triggered or updated the pipeline. These are inputs for the deltas above.
- 2026-10-09 20:46Zghsa: trigger signal, started the run
- 2026-10-09 20:46Zpublic poc, published 2026-10-09 20:40Z
- 2026-10-09 20:46Zcve.org record for CVE-2026-57458
this entry in the feed
GET /api/v1/feed/CVE-2026-57458
{ "etk_id": "ETK-2026-1122", "cve_id": "CVE-2026-57458", "display_id": "CVE-2026-57458", "ghsa_id": "GHSA-v3p6-34mc-hj7v", "euvd_id": "EUVD-2026-95991", "status": "published", "anchor_state": "anchored", "title": "Vikunja scoped API token permission bypass", "summary": "Vikunja 2.3.0 does not preserve scoped API-token permissions when issuing OAuth-derived session credentials. An attacker who possesses a token allowed to authorize OAuth can obtain credentials for the same account that work beyond the token's assigned scope.", "mitigation": "Upgrade code.vikunja.io/api to version 2.4.0 or later. Restrict issuance and exposure of scoped API tokens until the update is complete.", "vendor": "go", "product": "go:code.vikunja.io/api", "affected": [ { "affected_notes": [], "affected_ranges": [ "= 2.3.0" ], "ecosystem": "go", "fixed_versions": [ "2.4.0" ], "package_name": "code.vikunja.io/api", "purl": "pkg:golang/code.vikunja.io/api" } ], "cwes": null, "cvss_score": 8.1, "cvss_src": "cna_vendor", "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "epss_score": 0.0027, "epss_percentile": 0.1734, "epss_asof": "2026-10-20", "automation": "deterministic", "check": true, "check_confidence_basis": "differential", "exploit": false, "pipeline_minutes": 18.96756158333333, "t0_at": "2026-10-09T20:46:29.356000+00:00", "signals": { "check": { "at": "2026-10-10T01:43:14.767304+00:00", "days": 0.20608114935185184, "is_lower_bound": false, "measured_at": "2026-10-09T20:46:29.356000+00:00", "url": null }, "public_poc": { "at": "2026-10-09T20:40:28+00:00", "days": -0.0041823611111111115, "is_lower_bound": false, "measured_at": "2026-10-09T20:46:29.356000+00:00", "url": "https://github.com/advisories/GHSA-v3p6-34mc-hj7v" }, "trigger_signal": { "at": "2026-10-09T20:46:29.356000+00:00", "days": 0, "is_lower_bound": false, "measured_at": "2026-10-09T20:46:29.356000+00:00", "url": "https://github.com/advisories/GHSA-v3p6-34mc-hj7v" } } }
published 2026-10-10 01:24Z
last change 2026-10-21 08:40Z
Need the technical details behind an entry?
Every entry here shows what we attempted and when. The technical details, the generated exploit that fired it and the evidence behind the verdict are not public. Tell us about your use case and we’ll get back to you about extended API access.