LiveActive security incident?Get immediate response
CVE Record

CVE-2026-54569: SENAITE.CORE: Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') and Missing Authorization in senaite.core

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.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

An unauthenticated attacker who can reach a vulnerable SENAITE JSON API may run arbitrary Python inside the application worker. This could expose or alter laboratory records, files, and accounts or interrupt service. No user interaction or existing account is required.

Executive priority

Treat this as an emergency remediation item for every affected deployment, especially systems reachable from the internet. The vulnerability requires no credentials and may compromise sensitive laboratory operations. Prioritize containment, vendor-guided patching, exposure review, and compromise assessment.

Technical view

SENAITE.CORE 2.0.0 through 2.6.0 lacks authorization checks on state-changing JSON API routes. A two-request chain can select an object and pass raw RecordField or RecordsField input into eval() before write-permission checks, enabling remote code execution even when the later database mutation fails and rolls back.

Likely exposure

Deployments running senaite.core 2.0.0 through 2.6.0 are affected when the JSON API is reachable by an unauthenticated attacker. Internet exposure creates the greatest urgency, but internal access still presents lateral-movement and insider risk.

Exploitation context

The source bundle describes a practical, low-complexity, unauthenticated attack chain with complete confidentiality, integrity, and availability impact. However, the CVE is not listed as KEV, and the supplied evidence does not establish active exploitation in the wild.

Researcher notes

A failed or rolled-back ZODB mutation does not negate compromise because Python execution occurs earlier. Similar unsafe evaluation patterns are reported in two browser field modules. The supplied sources identify linked fixes but do not state a confirmed fixed release version, so exact upgrade guidance must be verified with the vendor.

Mitigation direction

  • Check the vendor advisory and apply its corrected release or linked patches without delay.
  • Until remediated, restrict the SENAITE JSON API to trusted networks and authenticated access controls.
  • Consider isolating affected systems from untrusted networks while remediation is tested.
  • If compromise is suspected, preserve evidence and rotate credentials or secrets accessible to the application worker.

Validation and detection

  • Inventory senaite.core versions and identify every deployment running 2.0.0 through 2.6.0.
  • Confirm unauthenticated clients cannot access state-changing JSON API routes after remediation.
  • Verify permission enforcement occurs before attacker-selected object resolution.
  • Confirm raw RecordField and RecordsField values are no longer dynamically evaluated.
  • Review application and proxy logs for unusual anonymous JSON API access or chained object-selection activity.
  • Inspect laboratory data, files, accounts, and worker processes for unexplained changes or anomalies.
Prepared
Confidence
high
Sources
7

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-862: Authorization and privilege behavior lookup

Authorization weaknesses can support privilege escalation and valid-account review, depending on exploit path. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · medium confidence lookup

CWE-95: Code execution behavior lookup

Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Execution behavior lookup

The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-54569 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
6Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.8Critical
CVSS 3.1 vector shape for CVE-2026-54569Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
senaitesenaite.core>= 2.0.0, <= 2.6.0Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-862 · source CWE mapping

Missing Authorization

Missing Authorization represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.

CWE-95 · source CWE mapping

Improper Neutralization of Directives in Dynamically Evaluated Code

Improper Neutralization of Directives in Dynamically Evaluated Code represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.