CVE-2026-76237 Overview
CVE-2026-76237 is a broken object level authorization (BOLA) vulnerability in stigmem-node versions before 0.9.0a12. The flaw affects multi-tenant deployments running the opt-in stigmem-plugin-multi-tenant component. The quarantine review endpoints under /v1/quarantine fail to enforce tenant boundaries, letting a tenant administrator with a plain write capability access quarantined facts belonging to other tenants. Default single-tenant deployments are not affected. The weakness is tracked as CWE-639: Authorization Bypass Through User-Controlled Key.
Critical Impact
Any authenticated tenant administrator can list, read, admit, or reject quarantined facts owned by other tenants, breaking data isolation across the deployment.
Affected Products
- stigmem-node versions before 0.9.0a12
- Deployments running the opt-in stigmem-plugin-multi-tenant
- Multi-tenant installations exposing /v1/quarantine endpoints
Discovery Timeline
- 2026-08-19 - CVE-2026-76237 published to NVD
- 2026-08-21 - Last updated in NVD database
Technical Details for CVE-2026-76237
Vulnerability Analysis
The vulnerability resides in the quarantine review path defined in routes/quarantine.py. When stigmem-plugin-multi-tenant is enabled, requests to the /v1/quarantine endpoints should be scoped to the calling tenant. In vulnerable builds, the list and count queries omit any tenant_id predicate. The internal _get_quarantined_fact helper likewise resolves records by identifier alone. The associated garden lookup is not tenant-scoped, so parent object ownership is never validated. An attacker with a plain tenant write capability supplies identifiers belonging to another tenant and receives the corresponding data or performs state-changing actions on it.
Root Cause
The root cause is missing authorization enforcement on object references, classified under [CWE-639]. Access control is delegated to identifier possession rather than to a server-side check binding each record to its owning tenant. Because the multi-tenant plugin extends the schema with tenant_id but the query layer never filters on it, authorization degenerates to authentication.
Attack Vector
The attacker authenticates as a low-privileged administrator inside any tenant on the shared deployment. They enumerate or guess quarantine fact identifiers and issue HTTP requests to the /v1/quarantine list, read, admit, or reject endpoints. The server returns or mutates records regardless of which tenant owns them. No user interaction is required, and the attack executes over the network against exposed API endpoints. See the GitHub Security Advisory and the VulnCheck Advisory on BOLA for endpoint-level detail.
Detection Methods for CVE-2026-76237
Indicators of Compromise
- Requests to /v1/quarantine endpoints where the resolved tenant_id on the returned record does not match the caller's tenant claim.
- Repeated GET /v1/quarantine list or count calls followed by targeted reads of specific fact identifiers.
- admit or reject actions on quarantined facts performed by administrators who did not originate the enclosing garden.
Detection Strategies
- Instrument the quarantine routes to log the caller's tenant identifier alongside the owning tenant of each accessed record and alert on mismatches.
- Correlate authentication events with /v1/quarantine access patterns to surface administrators touching facts outside their normal tenant scope.
- Review historical API logs for cross-tenant reads or state changes performed before upgrading to 0.9.0a12.
Monitoring Recommendations
- Forward stigmem-node API logs to a centralized analytics platform and retain them for post-incident reconstruction.
- Baseline per-tenant call volumes to /v1/quarantine and alert on sudden expansion in the range of accessed identifiers.
- Track write-capability administrator accounts and flag any use of admit or reject verbs against unfamiliar garden identifiers.
How to Mitigate CVE-2026-76237
Immediate Actions Required
- Upgrade stigmem-node to version 0.9.0a12 or later on every multi-tenant deployment.
- Audit /v1/quarantine access logs since the plugin was enabled to identify any cross-tenant reads or state changes.
- Rotate or review tenant administrator credentials that had write capability during the exposure window.
Patch Information
The fix ships in stigmem-node0.9.0a12. The updated code in routes/quarantine.py adds a tenant_id predicate to the list and count queries, scopes _get_quarantined_fact to the caller's tenant, and enforces tenant ownership on the garden lookup. Refer to the GitHub Security Advisory for the patched commit and release notes.
Workarounds
- Disable the stigmem-plugin-multi-tenant plugin until the upgrade is applied; single-tenant deployments are not affected.
- Restrict /v1/quarantine endpoints at an upstream proxy so only trusted operators can invoke them.
- Temporarily revoke plain tenant write capability from administrators who do not require quarantine review functionality.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

