Description
The official Flair wheels for 0.15.0 and 0.15.1 still contain flair/models/clustering.py, whose ClusteringModel.load static method returns pickle.loads(joblib.load(str(model_file))) and so executes arbitrary Python while loading a model file. Loading a model supplied by an attacker therefore runs that attacker's code with the privileges of the loading process. This is the same sink and the same file as CVE-2024-10073, which records 0.15.0 as the fixed version on the basis that clustering support was dropped in that release; the module was removed from the documented API but remains present in the distributed artifact and reachable by importing flair.models.clustering directly, so the earlier record's fixed version does not hold for the shipped package.
Published: 2026-08-24
Score: 8.4 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Apply Patch
AI Analysis

Impact

The flaw arises because the ClusteringModel.load method in flair/models/clustering.py performs a pickle load on data read from a supplied model file. Pickle is inherently capable of executing arbitrary Python code, so an attacker who supplies a crafted model file can cause the loading process to execute malicious code with the same privileges as that process. Consequently, this vulnerability allows an attacker to run arbitrary code on the target system, fully compromising confidentiality, integrity, and availability. The weakness is a classic deserialization issue (CWE‑502).

Affected Systems

The vulnerability affects the flairNLP:flair product, specifically the 0.15.0 and 0.15.1 releases. The problematic module remains in the distributed wheels, even though it was removed from the official API in 0.15.0. Admins installing these releases need to be aware that the clustering functionality persists and can be invoked by importing flair.models.clustering directly.

Risk and Exploitability

The CVSS base score is 8.4, indicating a high severity. EPSS data is not available, and the vulnerability is not listed in the CISA KEV catalog. The attack vector is likely to be an attacker-controlled model file loaded by an application using flair. If a system imports or executes the ClusteringModel.load function on an untrusted file, the attacker’s code runs with the privileges of the loading process. The risk is significant for any environment where flair is used to deserialize model files from external sources.

Generated by OpenCVE AI on August 24, 2026 at 17:16 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade flair to a release that removes the clustering module so the vulnerable load function is no longer present.
  • If an upgrade is not immediately possible, do not load or import any untrusted model files; restrict model loading to internally sourced files only.
  • Run the flair application in a least‑privilege environment, such as a dedicated container or virtual machine, and enforce strict file‑system permissions so external files cannot be accessed by the loading process.

Generated by OpenCVE AI on August 24, 2026 at 17:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 16:30:00 +0000


Fri, 28 Aug 2026 15:30:00 +0000


Mon, 24 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Flair
Flair flair
Vendors & Products Flair
Flair flair

Mon, 24 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 24 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Description The official Flair wheels for 0.15.0 and 0.15.1 still contain flair/models/clustering.py, whose ClusteringModel.load static method returns pickle.loads(joblib.load(str(model_file))) and so executes arbitrary Python while loading a model file. Loading a model supplied by an attacker therefore runs that attacker's code with the privileges of the loading process. This is the same sink and the same file as CVE-2024-10073, which records 0.15.0 as the fixed version on the basis that clustering support was dropped in that release; the module was removed from the documented API but remains present in the distributed artifact and reachable by importing flair.models.clustering directly, so the earlier record's fixed version does not hold for the shipped package.
Title Flair 0.15.0 and 0.15.1 Deserialization of Untrusted Data via ClusteringModel.load
Weaknesses CWE-502
References
Metrics cvssV3_1

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

cvssV4_0

{'score': 8.4, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-28T15:18:31.470Z

Reserved: 2026-08-19T20:34:19.724Z

Link: CVE-2026-76843

cve-icon Vulnrichment

Updated: 2026-08-24T19:00:48.334Z

cve-icon NVD

Status : Received

Published: 2026-08-24T14:17:02.087

Modified: 2026-08-28T16:18:25.963

Link: CVE-2026-76843

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-24T20:45:04Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data