{"items":[{"id":"NVI-00011727","kind":"vulnerability","title":"Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)","revision":4,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-rj9j-8772-4h6c","CVE-2026-68582"],"plain_summary":"GitHub lists this reviewed advisory for code.vikunja.io/api. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-002df1ec89c37e95f0539284523c66b6"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-11-05T12:03:04.000Z","value":"0.330%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.26299. Missing scores are unknown.","source_id":"sr-002df1ec89c37e95f0539284523c66b6"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-0e57cd79f62fd84ec2cdcf1fe7c42a11","url":"https://github.com/advisories/GHSA-rj9j-8772-4h6c","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-rj9j-8772-4h6c","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"},{"id":"sr-002df1ec89c37e95f0539284523c66b6","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-68582","publisher":"FIRST EPSS","observed_at":"2026-11-06T07:17:46.395Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0e57cd79f62fd84ec2cdcf1fe7c42a11"],"technology":"code.vikunja.io/api","known_exclusions":[],"conditions_summary":"## Summary\n\nThe task-collection endpoint `GET /api/v1/projects/{project}/views/{view}/tasks` loads the requested project view straight from the URL path without verifying the caller is authorized for it. For a **link-share token**, the task query is correctly pinned to the share's own project, but the *view* is taken from the attacker-controlled path and never re-validated against the share. A holder of a share link to **any** project can therefore point the endpoint at any other tenant's kanban view and receive that view's bucket records — bucket titles plus the full `created_by` user object (username, name, id) — for every view in the instance. The same missing pre-authorization view load also yields a project/view-ID existence oracle (404 vs. non-404) usable by link shares and ordinary authenticated users alike.\n\n## Details\n\nRoot cause is in `TaskCollection.ReadAll` (`pkg/models/task_collection.go`).\n\n1. The view is resolved from the URL params before any permission check:\n\n```go\n// pkg/models/task_collection.go  (ReadAll)\nif tf.ProjectViewID != 0 {\n    view, err = GetProjectViewByIDAndProject(s, tf.ProjectViewID, tf.ProjectID) // (URL params)\n    ...\n}\n```\n\n`GetProjectViewByIDA","public_affected_ranges":[">= 0.24.0, <= 2.3.0"]}],"null_published_at":"2026-11-07T07:07:42.507Z","source_updated_at":"2026-10-09T20:42:35.000Z","source_disclosed_at":"2026-10-09T20:42:33.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-11-01T00:58:23.763Z"},{"id":"NVI-00011727","kind":"vulnerability","title":"Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-rj9j-8772-4h6c","CVE-2026-68582"],"plain_summary":"GitHub lists this reviewed advisory for code.vikunja.io/api. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0f6f92da1baeb58d7f3cb4d8fa96b5f0"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-11-03T12:00:27.000Z","value":"0.330%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.26227. Missing scores are unknown.","source_id":"sr-0f6f92da1baeb58d7f3cb4d8fa96b5f0"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-0e57cd79f62fd84ec2cdcf1fe7c42a11","url":"https://github.com/advisories/GHSA-rj9j-8772-4h6c","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-rj9j-8772-4h6c","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"},{"id":"sr-0f6f92da1baeb58d7f3cb4d8fa96b5f0","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-68582","publisher":"FIRST EPSS","observed_at":"2026-11-03T17:45:16.077Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0e57cd79f62fd84ec2cdcf1fe7c42a11"],"technology":"code.vikunja.io/api","known_exclusions":[],"conditions_summary":"## Summary\n\nThe task-collection endpoint `GET /api/v1/projects/{project}/views/{view}/tasks` loads the requested project view straight from the URL path without verifying the caller is authorized for it. For a **link-share token**, the task query is correctly pinned to the share's own project, but the *view* is taken from the attacker-controlled path and never re-validated against the share. A holder of a share link to **any** project can therefore point the endpoint at any other tenant's kanban view and receive that view's bucket records — bucket titles plus the full `created_by` user object (username, name, id) — for every view in the instance. The same missing pre-authorization view load also yields a project/view-ID existence oracle (404 vs. non-404) usable by link shares and ordinary authenticated users alike.\n\n## Details\n\nRoot cause is in `TaskCollection.ReadAll` (`pkg/models/task_collection.go`).\n\n1. The view is resolved from the URL params before any permission check:\n\n```go\n// pkg/models/task_collection.go  (ReadAll)\nif tf.ProjectViewID != 0 {\n    view, err = GetProjectViewByIDAndProject(s, tf.ProjectViewID, tf.ProjectID) // (URL params)\n    ...\n}\n```\n\n`GetProjectViewByIDA","public_affected_ranges":[">= 0.24.0, <= 2.3.0"]}],"null_published_at":"2026-11-06T00:29:57.277Z","source_updated_at":"2026-10-09T20:42:35.000Z","source_disclosed_at":"2026-10-09T20:42:33.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-11-01T00:58:23.763Z"},{"id":"NVI-00011727","kind":"vulnerability","title":"Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-rj9j-8772-4h6c","CVE-2026-68582"],"plain_summary":"GitHub lists this reviewed advisory for code.vikunja.io/api. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-5fe100c3d6414106ea8cc9106cd71390"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.330%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.26205. Missing scores are unknown.","source_id":"sr-5fe100c3d6414106ea8cc9106cd71390"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-0e57cd79f62fd84ec2cdcf1fe7c42a11","url":"https://github.com/advisories/GHSA-rj9j-8772-4h6c","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-rj9j-8772-4h6c","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"},{"id":"sr-5fe100c3d6414106ea8cc9106cd71390","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-68582","publisher":"FIRST EPSS","observed_at":"2026-11-01T01:39:43.085Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0e57cd79f62fd84ec2cdcf1fe7c42a11"],"technology":"code.vikunja.io/api","known_exclusions":[],"conditions_summary":"## Summary\n\nThe task-collection endpoint `GET /api/v1/projects/{project}/views/{view}/tasks` loads the requested project view straight from the URL path without verifying the caller is authorized for it. For a **link-share token**, the task query is correctly pinned to the share's own project, but the *view* is taken from the attacker-controlled path and never re-validated against the share. A holder of a share link to **any** project can therefore point the endpoint at any other tenant's kanban view and receive that view's bucket records — bucket titles plus the full `created_by` user object (username, name, id) — for every view in the instance. The same missing pre-authorization view load also yields a project/view-ID existence oracle (404 vs. non-404) usable by link shares and ordinary authenticated users alike.\n\n## Details\n\nRoot cause is in `TaskCollection.ReadAll` (`pkg/models/task_collection.go`).\n\n1. The view is resolved from the URL params before any permission check:\n\n```go\n// pkg/models/task_collection.go  (ReadAll)\nif tf.ProjectViewID != 0 {\n    view, err = GetProjectViewByIDAndProject(s, tf.ProjectViewID, tf.ProjectID) // (URL params)\n    ...\n}\n```\n\n`GetProjectViewByIDA","public_affected_ranges":[">= 0.24.0, <= 2.3.0"]}],"null_published_at":"2026-11-01T22:58:19.134Z","source_updated_at":"2026-10-09T20:42:35.000Z","source_disclosed_at":"2026-10-09T20:42:33.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-11-01T00:58:23.763Z"},{"id":"NVI-00011727","kind":"vulnerability","title":"Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-rj9j-8772-4h6c","CVE-2026-68582"],"plain_summary":"GitHub lists this reviewed advisory for code.vikunja.io/api. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0e57cd79f62fd84ec2cdcf1fe7c42a11"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-0e57cd79f62fd84ec2cdcf1fe7c42a11","url":"https://github.com/advisories/GHSA-rj9j-8772-4h6c","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-rj9j-8772-4h6c","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T00:58:23.763Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-0e57cd79f62fd84ec2cdcf1fe7c42a11"],"technology":"code.vikunja.io/api","known_exclusions":[],"conditions_summary":"## Summary\n\nThe task-collection endpoint `GET /api/v1/projects/{project}/views/{view}/tasks` loads the requested project view straight from the URL path without verifying the caller is authorized for it. For a **link-share token**, the task query is correctly pinned to the share's own project, but the *view* is taken from the attacker-controlled path and never re-validated against the share. A holder of a share link to **any** project can therefore point the endpoint at any other tenant's kanban view and receive that view's bucket records — bucket titles plus the full `created_by` user object (username, name, id) — for every view in the instance. The same missing pre-authorization view load also yields a project/view-ID existence oracle (404 vs. non-404) usable by link shares and ordinary authenticated users alike.\n\n## Details\n\nRoot cause is in `TaskCollection.ReadAll` (`pkg/models/task_collection.go`).\n\n1. The view is resolved from the URL params before any permission check:\n\n```go\n// pkg/models/task_collection.go  (ReadAll)\nif tf.ProjectViewID != 0 {\n    view, err = GetProjectViewByIDAndProject(s, tf.ProjectViewID, tf.ProjectID) // (URL params)\n    ...\n}\n```\n\n`GetProjectViewByIDA","public_affected_ranges":[">= 0.24.0, <= 2.3.0"]}],"null_published_at":"2026-11-01T01:03:56.594Z","source_updated_at":"2026-10-09T20:42:35.000Z","source_disclosed_at":"2026-10-09T20:42:33.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-01T00:58:23.763Z"}],"next_cursor":null,"snapshot_revision":"42594"}