Description
Incomplete Comparison with Missing Factors (CWE-1023) in merge_chats() (whatstk/utils/chat_merge.py), reached from BaseChat.merge(), in whatstk from 0.3.0 before 0.9.0 allows a party that supplies the chat exports to cause messages to be absent from the merged output with no indication that anything was removed, because the merge keeps whole the chat whose first message is oldest and appends from the other only the messages that are strictly newer than the last message of the first. Every message of the second chat that falls inside the date range already covered by the first is therefore discarded. The two chats are compared on their date ranges and not on the identity of the individual messages, so a message held by only one of the two exports is dropped whenever its date falls inside the range of the other, and both branches of _merge_two_chats() behave this way. The merged result is returned without a warning and without a count of what was removed. This results in a merged chat that omits messages the inputs contain, in a library whose documented uses include forensic review and the generation of training data.
Published: 2026-11-03
Score: 1.8 Low
EPSS: n/a
KEV: No
Impact: Information Loss
Action: Patch upgrade
AI Analysis

Impact

The vulnerability arises from a missing comparison factor in the chat merging routine, a CWE-1023 issue, causing all messages whose timestamps fall inside the date range of an existing chat to be silently discarded. When two chat exports overlap, the merge keeps only the newer messages from the second export, and any message that is chronologically within the first chat’s period is removed without any warning or record of the loss. This flaw can corrupt forensic reviews or training datasets that rely on complete message histories, potentially erasing critical information from the merged output.

Affected Systems

The issue exists in the whatstk Python library versions 0.3.0 through 0.8.x, as maintained by the vendor lucasrodes. The vulnerability is fixed in whatstk 0.9.0 and later, which implements proper comparison of individual message identities rather than solely date ranges.

Risk and Exploitability

With a CVSS score of 1.8 the severity is low, and no EPSS score is available, indicating limited evidence of exploitation. The flaw is not listed in CISA’s KEV catalog. The likely attack scenario involves any user—whether malicious or accidental—who supplies chat export files to the merge function, such as a developer, forensic analyst, or automated pipeline. Because the vulnerability is triggered by local input data and does not rely on remote code execution or privileged operations, the operational risk is modest, but the loss of data could be significant for forensic or training use cases.

Generated by OpenCVE AI on November 3, 2026 at 17:27 UTC.

Remediation

Vendor Solution

Upgrade to whatstk 0.9.0 or later.


OpenCVE Recommended Actions

  • Upgrade the whatstk library to version 0.9.0 or later, which applies the fixed merge logic.
  • If an immediate upgrade is not possible, apply the reference commit 01d66d8 from the repository as a temporary patch, which contains the corrected merge logic.
  • After merging, validate the completeness of the merged chat by comparing message counts and timestamps between the original exports and the merged output; use automated scripts or audit checks to detect any missing messages.

Generated by OpenCVE AI on November 3, 2026 at 17:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 03 Nov 2026 15:30:00 +0000

Type Values Removed Values Added
Description Incomplete Comparison with Missing Factors (CWE-1023) in merge_chats() (whatstk/utils/chat_merge.py), reached from BaseChat.merge(), in whatstk from 0.3.0 before 0.9.0 allows a party that supplies the chat exports to cause messages to be absent from the merged output with no indication that anything was removed, because the merge keeps whole the chat whose first message is oldest and appends from the other only the messages that are strictly newer than the last message of the first. Every message of the second chat that falls inside the date range already covered by the first is therefore discarded. The two chats are compared on their date ranges and not on the identity of the individual messages, so a message held by only one of the two exports is dropped whenever its date falls inside the range of the other, and both branches of _merge_two_chats() behave this way. The merged result is returned without a warning and without a count of what was removed. This results in a merged chat that omits messages the inputs contain, in a library whose documented uses include forensic review and the generation of training data.
Title Silent loss of messages when merging overlapping chat exports in whatstk
First Time appeared Lucasrodes
Lucasrodes whatstk
Weaknesses CWE-1023
CPEs cpe:2.3:a:lucasrodes:whatstk:*:*:*:*:*:python:*:*
Vendors & Products Lucasrodes
Lucasrodes whatstk
References
Metrics cvssV4_0

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


Subscriptions

Lucasrodes Whatstk
cve-icon MITRE

Status: PUBLISHED

Assigner: Secur0

Published:

Updated: 2026-11-03T15:24:43.300Z

Reserved: 2026-11-03T14:50:43.432Z

Link: CVE-2026-121564

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-11-03T16:17:29.293

Modified: 2026-11-03T16:30:49.290

Link: CVE-2026-121564

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-03T17:30:08Z

Weaknesses
  • CWE-1023

    Incomplete Comparison with Missing Factors