Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged employee
-
ExploitEnumerate foreign source IDs
-
ExecutionInvoke by-id routes skipping can_access_document
-
ImpactDisclose wiki titles/summaries and alter ingestion state
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires a valid authenticated employee account on an Arkon instance (through 0.9.2) and knowledge or enumeration of another department's source IDs; the attacker then calls the by-id source routes (plan, progress, PATCH, retry, approve-extraction) in app/routers/sources.py, which omit the can_access_document authorization check. Meaningful impact depends on a multi-department/multi-tenant deployment where cross-department data isolation is expected. Limiting factors: valid low-privileged credentials are mandatory (PR:L, so not remote-unauthenticated), no user interaction is needed, disclosure is confined to derived wiki titles/summaries and ingestion-state fields rather than raw source content, and there is no availability impact. |
| Impact | This is a moderate, authorization-layer (IDOR) flaw, not a top-tier priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network reach and low attack complexity but requires existing low-privileged authentication (PR:L), and impact is limited to low confidentiality and low integrity (VC:L/VI:L) with no availability impact (VA:N) and no scope/subsequent-system change - consistent with the 5.3 (Medium) base score. No EPSS score was supplied and the CVE is not listed in CISA KEV, so there is no signal of widespread or active exploitation. A detailed public technical writeup exists (hackmd) describing the cross-department IDOR, which lowers the effort to reproduce, but this is distinct from confirmed exploitation. The practical risk is bounded by two factors the raw score does not fully convey: the attacker must already be an authenticated employee, and the exposed data is limited to derived wiki titles/summaries and ingestion-state fields rather than full source content. Net assessment: a legitimate but not urgent issue - meaningful in multi-tenant/multi-department Arkon deployments where tenant isolation matters, low priority elsewhere. |
| Exploit ScenarioDerived | A low-privileged but authenticated employee in one department enumerates or guesses source IDs belonging to another department and calls the vulnerable by-id routes (plan, progress, PATCH, retry, approve-extraction) in app/routers/sources.py, which never invoke can_access_document. They thereby read derived wiki titles and summaries from foreign sources and modify ingestion state. A public technical writeup detailing this IDOR is available, lowering the barrier to reproduction, though no packaged exploit code is confirmed; the attack is network-reachable with low complexity but needs valid credentials. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Arkon deployments through version 0.9.2 allow authenticated, low-privileged employees to read and tamper with other departments' source ingestion records because the by-id routes in app/routers/sources.py (plan, progress, PATCH, retry, approve-extraction) omit the can_access_document authorization check. An attacker with a valid account only needs to know or enumerate a foreign source ID to disclose derived wiki titles and summaries and to change ingestion state; raw source content is not exposed and there is no availability impact. Per the independent assessment this is a moderate authorization-layer (IDOR) flaw requiring PR:L credentials, with no public exploit identified at time of analysis and no CISA KEV listing.
RemediationAI
No vendor-released patch identified at time of analysis: the available references point to the vulnerable v0.9.2 source in the nduckmink/arkon repository rather than to a fixed release, so the primary fix is to apply the missing can_access_document check (the same guard already used elsewhere in app/routers/sources.py) to every by-id route - plan, progress, PATCH, retry and approve-extraction - before dependency resolution, and to validate that the requesting user's department matches the source's owning department; treat this as an upstream-code fix if you build from source, and track the vendor repository and the VulnCheck advisory (https://www.vulncheck.com/advisories/arkon-through-0.9.2-broken-access-control-via-sources-by-id-routes) for a patched tag. Until a fixed version ships, compensating controls with their trade-offs are: enforce department scoping at a reverse proxy or API gateway by mapping authenticated identities to allowed source-ID prefixes (effective only if IDs are predictable or namespaced, and it breaks if IDs are opaque or reassigned); restrict Arkon access to a single trusted network segment or VPN so only one department's users can reach the instance (removes the multi-tenant exposure entirely but negates shared deployments); or run separate Arkon instances per department (strong isolation at the cost of duplicated infrastructure and no cross-department views). If source identifiers are guessable, consider replacing them with cryptographically random UUIDs as a hardening measure, but note that this is obscurity-by-identifier only and does not substitute for the missing authorization check - the IDOR remains reachable by an attacker who learns a valid ID. Log and alert on by-id source requests where the requested source's department differs from the caller's department, as a detection control while remediation is pending.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is CWE-639, Authorization Bypass Through User-Controlled Key - a classic IDOR pattern in which an object identifier supplied by the client (the source ID) is used to fetch or mutate a record without verifying that the caller owns or may access that object. Arkon is a Python web application whose routes are defined in app/routers/sources.py; several by-id endpoints (plan, progress, PATCH, retry, approve-extraction) fail to invoke the can_access_document helper that guards the rest of the source API, so the department/tenant boundary is never enforced on those paths. Because the identifiers appear to be simple sequential or guessable values rather than unguessable tokens, a low-privileged employee in one department can target any source belonging to another department within the same instance. The disclosed data is limited to derived artifacts - wiki titles and summaries produced from ingestion - plus read/write access to ingestion state fields; the CVSS:4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N) confirms a network-reachable, low-complexity, authenticated attack with low confidentiality and integrity impact and no scope change, matching the independently assessed CVSS:3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N. The CPE cpe:2.3:a:nduckmink:arkon:* uses a wildcard version, so all releases up to and including 0.9.2 should be treated as affected until a fixed version is published; the referenced source lines (L257-L275, L295-L312, L644-L673) document the unguarded routes in the v0.9.2 tag.
Know when Arkon gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable API with low complexity but requires an authenticated employee account (PR:L); low confidentiality and integrity from reading/altering foreign source metadata, no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Arkon through 0.9.2 contains a broken access control vulnerability that allows authenticated employees to read and modify other departments' sources because by-id routes in app/routers/sources.py skip can_access_document. Attackers can call the plan, progress, PATCH, retry and approve-extraction routes with foreign source IDs to disclose derived wiki titles and summaries and alter ingestion state.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Missing authorization in Arkon through 0.9.2 lets any authenticated employee who holds only the wiki:read:own_dept permi
Missing authorization in Arkon 0.9.2 and earlier lets an authenticated employee holding only the default skill:read perm
EUVD-2026-103008
GHSA-r63c-wh5x-45mr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB