Description
SENAITE.CORE is the core framework for the SENAITE laboratory information management system. From 2.0.0 to 2.6.0, the SENAITE.CORE JSON API permits unauthenticated remote code execution through a two-request chain involving missing authorization and unsafe evaluation. The state-changing routes in src/bika/lims/jsonapi/update.py, including update, update_many, remove, doActionFor, doActionFor_many, and getusers, do not enforce the senaite.core: Access JSON API permission before resolving attacker-selected objects. In src/bika/lims/jsonapi/init.py, set_fields_from_request passes raw request values for RecordsField and RecordField instances to eval() before field mutator write-permission checks execute. An anonymous attacker can discover the bika_setup object identifier through @@uuid, send a value such as RejectionReasons to /@@API/update, and execute arbitrary Python in the Zope worker before a later mutation failure rolls back ZODB changes. The same unsafe evaluation pattern is present in src/senaite/core/browser/fields/record.py and src/senaite/core/browser/fields/records.py. Successful exploitation can expose or modify laboratory data, files, and accounts and can disrupt the service.
Published: 2026-08-26
Score: 9.8 Critical
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Uncontrolled eval() of request parameters in the SENAITE.CORE JSON API permits an anonymous user to execute arbitrary Python code, while missing checks for the "senaite.core: Access JSON API" permission on state‑changing routes. This combination of unsafe code evaluation (CWE‑95) and missing privilege checks (CWE‑862) allows an attacker to read, modify or delete laboratory data, files, and accounts, or disrupt service. The flaw applies to all SENAITE.CORE releases from 2.0.0 through 2.6.0.

Affected Systems

Vulnerable versions include SENAITE.CORE 2.0.0 through 2.6.0, delivered under the vendor name SENAITE and the product designation SENAITE.CORE. Only releases within that stated range are affected; newer or older versions are not impacted by this flaw.

Risk and Exploitability

The CVSS score of 9.8 indicates a critical severity, but the EPSS score is unavailable, so the current probability of exploitation cannot be quantified. Because no authentication is required and the vulnerability is triggered through the public JSON API, the attack vector is remote. An attacker can chain two requests: first discover the object identifier for bika_setup, then send malicious code such as RejectionReasons to the update endpoint, executing arbitrary Python in the target Zope process before any roll-back. The flaw is listed in the defined CWE identifiers but is not yet included in the CISA KEV catalog.

Generated by OpenCVE AI on August 26, 2026 at 18:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest security fixes from the SENAITE project, which remove unsafe eval usage and enforce the "senaite.core: Access JSON API" permission on all state‑changing routes.
  • If an update cannot be applied promptly, restrict public access to the JSON API endpoints so that only authenticated or trusted users can hit routes such as /@@API/update, /update_many, etc., thereby preventing anonymous exploitation.
  • For environments that cannot upgrade or limit network traffic, manually patch the affected source files (src/bika/lims/jsonapi/update.py, src/bika/lims/jsonapi/init.py, src/senaite/core/browser/fields/record.py, src/senaite/core/browser/fields/records.py) to replace any eval() calls with safe alternatives and insert explicit permission checks for the "senaite.core: Access JSON API" role before any state change operations.

Generated by OpenCVE AI on August 26, 2026 at 18:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jrw6-7x4q-w25j senaite.core Vulnerable to Eval Injection and Missing Authorization
History

Wed, 26 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 26 Aug 2026 16:00:00 +0000

Type Values Removed Values Added
Description SENAITE.CORE is the core framework for the SENAITE laboratory information management system. From 2.0.0 to 2.6.0, the SENAITE.CORE JSON API permits unauthenticated remote code execution through a two-request chain involving missing authorization and unsafe evaluation. The state-changing routes in src/bika/lims/jsonapi/update.py, including update, update_many, remove, doActionFor, doActionFor_many, and getusers, do not enforce the senaite.core: Access JSON API permission before resolving attacker-selected objects. In src/bika/lims/jsonapi/init.py, set_fields_from_request passes raw request values for RecordsField and RecordField instances to eval() before field mutator write-permission checks execute. An anonymous attacker can discover the bika_setup object identifier through @@uuid, send a value such as RejectionReasons to /@@API/update, and execute arbitrary Python in the Zope worker before a later mutation failure rolls back ZODB changes. The same unsafe evaluation pattern is present in src/senaite/core/browser/fields/record.py and src/senaite/core/browser/fields/records.py. Successful exploitation can expose or modify laboratory data, files, and accounts and can disrupt the service.
Title SENAITE.CORE: Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') and Missing Authorization in senaite.core
Weaknesses CWE-862
CWE-95
References
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-26T17:35:57.088Z

Reserved: 2026-06-15T19:15:27.343Z

Link: CVE-2026-54569

cve-icon Vulnrichment

Updated: 2026-08-26T17:35:35.679Z

cve-icon NVD

Status : Received

Published: 2026-08-26T16:16:27.733

Modified: 2026-08-26T18:16:40.930

Link: CVE-2026-54569

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T18:15:08Z

Weaknesses
  • CWE-862

    Missing Authorization

  • CWE-95

    Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection')