Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remote, no auth or interaction, and easily triggered (AV:N/AC:L/PR:N/UI:N); core impact is message/state spoofing so I:H, sync jamming gives A:L, and no real data disclosure so C:N.
Primary rating from Vendor (https://github.com/WhiskeySockets/Baileys).
CVSS VectorVendor: https://github.com/WhiskeySockets/Baileys
Lifecycle Timeline
5DescriptionCVE.org
Impact
Any baileys session under the latest version (< 7.0.0-rc12, and < 6.7.22) can be sent a malicious payload via the placeholderResendMessage and trigger a fake messages.upsert event with a fake message key and payload. This allows anyone to spoof messages. The same exploit also allows an attacker to corrupt the app state sync system by sending fake key shares, and also allows for history sync spoofing which also serves the same problem, injecting fake previous context or "on-demand" sync.
Patches
https://github.com/WhiskeySockets/Baileys/commit/3beb08eecfcb4e65722e674034bd84fb11a9de35 This commit has patched the issue, and a version tag has been released under 7.0.0 (6.7.22) for those still on Baileys v6. A new Baileys version, v7.0.0-rc12, has been released to remediate this.
Workarounds
There are no real workarounds other than dropping messages.upsert events that contain a requestId field, turning off automatic history sync (shouldSyncHistoryMessage: () => false) in socket config. There are no workarounds for the app state sync jamming.
AnalysisAI
Message and history-sync spoofing in the Baileys WhatsApp Web library (npm baileys / @whiskeysockets/baileys, versions < 6.7.22 and 7.0.0-rc.1 through < 7.0.0-rc12) lets any remote party send a crafted protocolMessage through the placeholderResendMessage path to fire a fake messages.upsert event with an attacker-chosen message key and payload. This permits arbitrary message spoofing, injection of fake history/on-demand sync context, and corruption of the app-state sync system via forged app-state key shares. Publicly available exploit code exists (proof-of-concept gist); there is no evidence of active exploitation and EPSS is negligible at 0.02%.
Technical ContextAI
Baileys is a TypeScript/Node.js library that speaks the WhatsApp Web multi-device protocol directly over WebSocket, widely used to build WhatsApp bots and integrations. The flaw sits in src/Utils/process-message.ts, which dispatches protocolMessage sub-types. Certain sub-types are only ever legitimately generated by the account's own paired devices - HISTORY_SYNC_NOTIFICATION, APP_STATE_SYNC_KEY_SHARE, LID_MIGRATION_MAPPING_SYNC, and PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE - yet the code processed them regardless of origin. This maps to CWE-290 (Authentication Bypass by Spoofing): the receiver trusts the claimed identity/origin of the message instead of verifying that self-only control messages actually came from the user's own device (fromMe). The patch mirrors whatsmeow's handleProtocolMessage guard by dropping these self-only types when message.key.fromMe is false.
RemediationAI
Vendor-released patch: upgrade to Baileys 6.7.22 (v6 users) or 7.0.0-rc12 (v7 release-candidate users), both of which contain the fix commit 3beb08eecfcb4e65722e674034bd84fb11a9de35 (https://github.com/WhiskeySockets/Baileys/commit/3beb08eecfcb4e65722e674034bd84fb11a9de35); see advisory GHSA-qvv5-jq5g-4cgg. If you cannot upgrade immediately, the vendor states there are no complete workarounds, but partial mitigations are: drop incoming messages.upsert events that carry a requestId field (blunts the placeholderResendMessage spoofing path, at the cost of losing legitimate resend/placeholder handling), and disable automatic history sync by setting shouldSyncHistoryMessage: () => false in the socket config (prevents history-sync spoofing but disables automatic backfill of prior conversation history). Note explicitly that there is no workaround for the app-state sync jamming via fake key shares - only the patch resolves that - so upgrading is the sole reliable remediation.
Same weakness CWE-290 – Authentication Bypass by Spoofing
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52440
GHSA-qvv5-jq5g-4cgg