Skip to main content

Steedos Platform EUVDEUVD-2026-102957

| CVE-2026-111666 MEDIUM
Incorrect Authorization (CWE-863)
2026-10-16 VulnCheck GHSA-388m-pwcw-qwh5
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Register/log in as low-privilege tenant user
  2. Exploit
    Call GET /api/v1/reports
  3. Execution
    callAdapter skips space filter on enable_space_global object
  4. Impact
    Disclose other tenants' report metadata and schema

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated account on a multi-tenant Steedos Platform instance (version through 3.0.15-beta.51); any low-privilege tenant user suffices (PR:L), with no admin rights and no user interaction needed. The specific trigger is that the 'reports' object is declared enable_space_global in reports.object.yml, and objectql's callAdapter (object.ts lines ~2899-2913) skips the space/tenant filter on find/findOne for such objects, so a plain GET /api/v1/reports returns other tenants' definitions. Limiting factors: the attacker must already possess valid credentials in the deployment, the instance must be genuinely multi-tenant for cross-tenant leakage to matter, and only metadata (report names, descriptions, object and field API names) is exposed - not report results or underlying records.

Impact

This is a genuine but moderate-severity information-disclosure issue, not a top-priority emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N, 5.3 Medium) is internally consistent with the description: network-reachable, low complexity, but requiring an existing authenticated low-privilege account (PR:L) and yielding only low confidentiality impact with no integrity or availability impact. That PR:L requirement is the single biggest risk-reducer - an attacker must already hold a valid tenant account, so this is not anonymous/pre-auth exploitation. There is no EPSS score, no CISA KEV listing, and no vendor-claimed active exploitation in the provided data, so exploitation status is 'no public exploit identified at time of analysis'; note, however, that one reference is a detailed third-party HackMD technical write-up, which lowers the bar for an attacker to reproduce the bug even though it is not packaged exploit code. The impact ceiling is metadata only (report names, descriptions, object and field API names), not underlying records, so the practical consequence is reconnaissance/schema disclosure across tenants rather than direct data theft. One point to verify: cross-tenant data exposure in a multi-tenant SaaS could arguably justify a CVSS scope change (S:C / SC not N), but the input encodes no scope change - defenders treating this as a boundary-crossing issue should weigh it slightly higher than the raw 5.3 suggests. Overall: real and worth patching, but a targeted, authenticated, low-impact issue rather than a wormable critical flaw.

Exploit ScenarioDerived

An attacker who has signed up for or already holds a low-privilege account in one tenant of a shared Steedos deployment sends GET /api/v1/reports. Because the reports object is marked enable_space_global and objectql's callAdapter omits the space (tenant) filter on find/findOne, the response returns report definitions belonging to other tenants, leaking report names, descriptions, and the object and field API names that reveal those tenants' data model. No weaponized exploit is published, but a public HackMD write-up documents the exact request and root cause.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Cross-tenant information disclosure in Steedos Platform through 3.0.15-beta.51 allows any authenticated low-privilege user to read other tenants' report definitions by issuing a single GET /api/v1/reports request. The root cause is that the 'reports' object is declared enable_space_global, and objectql's callAdapter skips space (tenant) filtering on find/findOne for such objects, so the API returns report names, descriptions, and object and field API names belonging to other tenants. The exposure is limited to metadata rather than underlying records, the attacker must already hold valid credentials on a genuinely multi-tenant instance, and no public exploit identified at time of analysis; exploitation status is not confirmed actively exploited (CISA KEV).

RemediationAI

No vendor-released patch identified at time of analysis, and the references point to the vulnerable source in the v3.0.15-beta.51 tag rather than to a fixed release, so teams should plan around git-based or configuration-based mitigations. The most direct fix is to stop treating the reports object as space-global: remove the enable_space_global declaration from reports.object.yml (or, if the metadata is compiled into the deployment, patch the delivered object definition) so that objectql's callAdapter re-applies the space filter on find/findOne and GET /api/v1/reports returns only the caller's own tenant's report definitions; the trade-off is that any legitimate cross-tenant sharing of report templates will stop working and must be replaced with an explicit role- or admin-scoped path. If modifying the object definition is not feasible, gate the endpoint at the reverse proxy or API gateway so that /api/v1/reports is restricted to specific privileged roles or internal networks, accepting that this is a compensating control that leaves the underlying adapter flaw in place and can be bypassed by any other route that reaches the same object. Additional hardening includes upgrading past 3.0.15-beta.51 as soon as a fixed build is published, auditing other objects that carry enable_space_global for the same missing-filter pattern, monitoring API logs for GET /api/v1/reports from low-privilege accounts across multiple spaces, and treating exposed object and field API names as a schema-disclosure signal that warrants tightening field-level permissions. Because the vulnerability is only reachable by an authenticated user, prompt review and de-provisioning of stale tenant accounts reduces the practical attack surface while a fix is prepared; consult the VulnCheck advisory at https://www.vulncheck.com/advisories/steedos-platform-through-3.0.15-beta.51-cross-tenant-information-disclosure-via-reports-api and the public write-up at https://hackmd.io/@hieuPenguinnn/steedos-platform-reports-cross-tenant-idor for details and any updated vendor guidance.

Affected VersionsENISA

steedos-platform 0 ≤3.0.15-beta.51

Affected Packages

euvd steedos_platform no fix

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

Steedos Platform is a low-code/enterprise application platform whose data layer is objectql, a metadata-driven ORM that maps YAML object definitions to database collections and exposes them through a REST API (versions through 3.0.15-beta.51, CPE cpe:2.3:a:steedos:steedos-platform:*:*:*:*:*:*:*:*). Steedos implements multi-tenancy through a 'space' concept: objectql normally injects a space filter into find/findOne queries so that a user in one tenant cannot see records belonging to another. Object definitions can set the flag enable_space_global, which tells the adapter to treat the object as tenant-agnostic and therefore skip that space filter. The 'reports' object is declared with enable_space_global in services/service-core-objects/main/default/objects/reports.object.yml, and the filter-skipping logic lives in objectql's callAdapter (packages/objectql/src/types/object.ts, roughly lines 2899-2913). The result is an incorrect-authorization condition (CWE-863) in which the authorization model - tenant scoping - is not applied to an object that contains tenant-specific content. Because report definitions embed object and field API names, the leak also hands an attacker a partial map of other tenants' data schemas, which can be used to plan further abuse, though report results and the underlying business records are not exposed by this endpoint.

Know when Steedos Platform 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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable API exploitable by any authenticated low-privilege user (PR:L, AC:L, UI:N); only metadata is disclosed so C:L with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Steedos Platform through 3.0.15-beta.51 contains an authorization bypass vulnerability that allows authenticated users to read other tenants' report definitions by querying the reports object. Because objectql's callAdapter skips space filtering for enable_space_global objects on find/findOne, attackers can call GET /api/v1/reports to disclose report names, descriptions, and object and field API names.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
niche open-source low-code platform, limited enterprise deployment footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy