CVE-2026-47361
Executive Summary
CVE-2026-47361 is a locally exploitable denial-of-service vulnerability in the Datadog Android application affecting its Bits AI chat notification functionality. The vulnerability stems from an improperly secured exported BubbleChatActivity component that lacks permission guards and accepts attacker-controlled SEND intents. A zero-permission co-installed malicious application can cancel the persistent Bits AI chat notification on the victim's device by launching this activity with a spoofed conversation_id. While no data is exposed and the vulnerability does not grant code execution, it enables persistent notification suppression that could facilitate phishing of in-app workflows or degrade user trust in Datadog's security monitoring alerts. The vulnerability is currently unpatched with no vendor fix available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Vulnerability Mechanism
The root cause of CVE-2026-47361 is a combination of three architectural flaws in the Datadog Android application:
Insecure Component Export: The
BubbleChatActivityis declared in the application manifest withandroid:exported="true"and no accompanyingandroid:permissionattribute. Per Android security best practices (and the Android Security Bulletin guidance), any exported component must enforce explicit permission checks. The absence of this guard means any application on the device — regardless of its permission level — can instantiate this activity via an explicit intent.Unvalidated Intent Extras: The activity accepts
Intent.ACTION_SENDintents withmimeType "text/plain"and reads aconversation_idfrom the intent extras bundle. This value is never cross-referenced against active server-side sessions, user identity, or any local session registry at the time the activity is launched.Unconditional Notification Cancellation: In the
onDestroy()lifecycle callback, the activity invokesBubbleChatNotification.dismisswhenever the caller-suppliedconversation_iddoes not match any active in-process session. Critically,BubbleChatNotification.dismisscallsNotificationManager.cancel(notificationId)with the hard-coded value9201— the Bits AI chat notification's identifier. This cancellation is performed unconditionally, with no verification that:- The calling application owns the conversation
- The conversation_id exists or is valid
- The notification currently being displayed actually belongs to the conversation referenced
Attack Surface
- Attack Vector: Local (requires co-installed application on the same device)
- Preconditions: The malicious application requires zero Android permissions
- Affected Component:
BubbleChatActivityexported component - Attack Complexity: Low — no race conditions, no timing requirements, no user interaction needed
- Notification Impact: Permanent suppression of Bits AI chat notification until user manually restores it or re-enables notifications in Android settings
Code-Level Explanation
The vulnerable flow can be summarized as:
// BubbleChatActivity.java (simplified)
@Override
protected void onCreate(Bundle savedInstanceState) {
// Reads intent without validation
String conversationId = getIntent().getStringExtra("conversation_id");
// ... activity setup
}
@Override
protected void onDestroy() {
super.onDestroy();
// No session validation — attacker controls conversationId
if (!activeSessions.contains(conversationId)) {
BubbleChatNotification.dismiss(conversationId);
// Internally: NotificationManager.cancel(9201) — unconditional
}
}
The NotificationManager.cancel(9201) call with a static notification ID is the core issue. Notification IDs are process-scoped, not conversation-scoped; any notification with ID 9201 is affected.
Exploitation Scenarios
Attack Chain — Notification Suppression via SEND Intent
Step 1: Reconnaissance and Target Identification The attacker crafts a malicious Android application (e.g., a trojanized utility app, adware bundle, or repackaged legitimate app) and distributes it via third-party APK stores, social engineering, or drive-by download campaigns. The attacker identifies targets who likely use Datadog's mobile monitoring for on-call alerting or security notifications — common in DevOps and security operations personnel.
Step 2: Payload Construction and Weaponization Within the malicious app, the attacker constructs the exploit payload:
// MaliciousApp.java
Intent exploit = new Intent();
exploit.setClassName("com.datadog.app", "com.datadog.app.core.BubbleChatActivity");
exploit.setAction(Intent.ACTION_SEND);
exploit.setType("text/plain");
exploit.putExtra("conversation_id", "attacker_controlled_random_string");
startActivity(exploit);
The attacker does not need to resolve the exact package name; they can use Intent.ACTION_SEND with an explicit component. The conversation_id can be any random string because the activity will not find a matching in-process session, thereby triggering the dismissal path.
Step 3: Execution and Notification Cancellation When the victim launches any component of the malicious app (or the app triggers the exploit in the background via a scheduled job), the following occurs:
- Android resolves the intent to
BubbleChatActivity - The activity launches — no permission check occurs (no
android:permissionattribute) - The victim may momentarily see a blank or malformed chat bubble UI
- The activity finishes (either immediately or after user presses back)
onDestroy()fires →BubbleChatNotification.dismiss()executes →NotificationManager.cancel(9201)removes the Bits AI notification
Step 4: Post-Exploitation Impact The Datadog Bits AI chat notification — which may contain critical security monitoring alerts, code review notifications, or incident response prompts — is silently removed. The user is unaware the notification was even present unless they manually check the Datadog app.
Escalation Scenario — Phishing Facilitation: An attacker can repeatedly trigger this vulnerability to suppress all Bits AI notifications. Combined with social engineering, this enables a phishing workflow:
- The attacker suppresses legitimate Bits AI notifications via this CVE
- The attacker later sends a forged notification/phishing message purporting to be from Datadog Bits AI
- The victim, conditioned to trust Bits AI notifications (since legitimate ones appear unreliably), is more likely to engage with the fraudulent content
Persistence: The attacker can trigger the exploit on every app launch, on boot (via BOOT_COMPLETED receiver), or on a timer, ensuring the notification is continuously suppressed.
Impact Assessment
Business Impact
- Availability Impact: MEDIUM — The Bits AI chat notification is permanently suppressed until manual intervention. In security-conscious organizations, the loss of AI-generated security alerts on mobile can cause delayed incident response, though the notification is supplementary to the main application UI.
- Integrity Impact: LOW — No data is modified; however, the notification channel's integrity is compromised, and suppressed notifications enable phishing.
- Confidentiality Impact: NONE — Chat content is server-authentication gated and never returned to the caller. No data exposure occurs.
Affected Systems
- Platform: Android — all versions that support the Datadog application (typically Android 7.0+)
- Affected Component:
BubbleChatActivityin the Datadog Android application - Operating Context: The vulnerability is exploitable only via co-installed applications on the same device — it is not remotely exploitable
Blast Radius
- Direct Victims: Users of the Datadog Android app who have Bits AI chat enabled
- Secondary Victims: Organizations using Datadog mobile monitoring for on-call engineering — suppressed notifications may lead to missed SLAs for incident response
- CVSS: N/A — The score was not assigned by the CNA; however, given the local-only attack vector, zero-permission requirement, and lack of data compromise, this would likely rate as LOW (2.0-3.9) under CVSS 3.1 if scored — but we do not fabricate a score
Detection Guidance
Sigma Rule
title: Datadog Android BubbleChatActivity Exploitation via SEND Intent
id: 8e4d4581-2f9b-4a6e-8d3a-5b07ea9c4d21
status: experimental
description: Detects Android activity launch attempts targeting BubbleChatActivity with SEND intents, indicating potential exploitation of CVE-2026-47361
author: Valters IT Security Research
date: 2026/01/15
tags:
- attack.t1204
- attack.execution
- cve.2026-47361
logsource:
product: android
category: process_creation
detection:
selection_package:
Process.Name|endswith: 'activitystarter'
selection_intent:
Intent.Action: 'android.intent.action.SEND'
Intent.Type: 'text/plain'
Intent.Component|contains: 'BubbleChatActivity'
selection_external:
Process.ParentName|startswith: 'com.' # Non-Datadog caller
Process.ParentName|endswith: '.datadog'
condition: selection_package and selection_intent and not selection_external
falsepositives:
- Legitimate Datadog app self-task launches (rare)
level: high
YARA Rule
rule Android_CVE_2026_47361_BubbleChatExploit {
meta:
author = "Valters IT Security Research"
description = "Detects malicious Android DEX/APK containing exploit code for Datadog BubbleChatActivity"
cve = "CVE-2026-47361"
date = "2026-01-15"
severity = "medium"
strings:
$s1 = "BubbleChatActivity" ascii wide
$s2 = "conversation_id" ascii wide
$s3 = "ACTION_SEND" ascii wide
$s4 = "text/plain" ascii wide
$s5 = "setClassName" ascii wide
$s6 = "NotificationManager" ascii wide
$s7 = "9201" ascii wide
$s8 = "notify" ascii wide
$s9 = "com.datadog" ascii wide
condition:
uint16(0) == 0x5A4D and // MZ header (DEX executable)
( all of them ) or
( filesize < 5MB and 4 of ($s*) )
}
Suricata IDS Rule
alert ip any any -> any any (msg:"CVE-2026-47361 Datadog Android BubbleChatActivity Exploit Attempt"; flow:to_client; content:"BubbleChatActivity"; nocase; content:"conversation_id"; nocase; content:"ACTION_SEND"; nocase; content:"text/plain"; nocase; distance:0; classtype:attempted-dos; sid:2026047361; rev:1; metadata:cve CVE-2026-47361, severity high;)
Note: This rule detects network traffic containing exploit strings — primarily useful for MITM or mobile device management monitoring that captures HTTP(S) traffic, since the exploit itself is local and does not generate network signatures by default. Adjust flow direction based on deployment.
Elastic Detection
// EQL rule — Detect unauthorized SEND intents to Datadog BubbleChatActivity
// Log source: Android device logs via Elastic Android agent or osquery
sequence by process.entity_id with maxspan=5m
[process where event.action == "start-activity" and
process.name == "activitystarter" and
process.args : "*BubbleChatActivity*"]
[process where event.action == "cancel-notification" and
process.args : "*9201*"]
Splunk SPL Query
index=android_logs sourcetype="android:process"
| search "BubbleChatActivity" AND "conversation_id" AND ("NotificationManager" OR "cancel_notification")
| where match(ProcessName, "^(?!com\\.datadog\\.).*")
| stats count by ProcessName, IntentAction, ComponentName, _time
| eval threat_indicators = if(count > 3, "HIGH", "MEDIUM")
| table _time, ProcessName, IntentAction, ComponentName, count, threat_indicators
| sort - _time
Wazuh OSSEC Rule
<group name="android,">
<rule id="100473" level="12">
<decoded_as>json</decoded_as>
<field name="component" type="pcre2">BubbleChatActivity</field>
<field name="action" type="pcre2">ACTION_SEND</field>
<field name="mime_type" type="pcre2">text/plain</field>
<description>Datadog Android CVE-2026-47361: Potential exploitation attempt targeting BubbleChatActivity with SEND intent from non-Datadog process</description>
<group>cve_2026_47361,exploit_attempt,android_security</group>
<mitre><id>T1204</id></mitre>
<mitre><id>T1402</id></mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 0/4 — UNPATCHED — no patch evidence from any tracked source. No vendor fix or security advisory has been published by Datadog for this issue as of the report date.
1. Immediate Mitigations
- Disable Bits AI Chat Notifications: In the Datadog Android app settings, disable the Bits AI chat notification permissions. This removes the target notification (ID 9201) from being cancelled, rendering the exploit ineffective.
- Restrict Co-Installed Applications: Enforce corporate mobile device management (MDM) policies that require allowlist-based application installation, preventing zero-permission apps from being sideloaded.
- App Installation Review: Audit devices for suspicious co-installed applications, especially those requesting no permissions (a known malicious behavior pattern — legitimate apps request at least some permissions).
- Monitor for Exploit Patterns: Deploy the detection rules above via the organization's SIEM or EDR to identify exploit attempts on managed Android devices.
2. Patch/Upgrade Steps
- No patch is currently available for CVE-2026-47361. Monitor the Datadog security advisories page (https://security.datadoghq.com) for the next application update.
- As a temporary hardening measure, network administrators can use Android Enterprise application management to pin the Datadog app to a known-good version and disable auto-updates pending the security fix.
- Do NOT attempt to manually patch the APK — this breaks Datadog's code signing and will cause the application to fail integrity verification.
3. Long-Term Hardening
- Recommend Datadog apply the following fix: Add
android:permission="android.permission.SEND"or a custom signature-level permission toBubbleChatActivityin the manifest; validateconversation_idagainst an authenticated session before allowing dismissal; replaceNotificationManager.cancel(9201)with conversation-scoped cancellation that verifies caller identity viaPendingIntentorBinder.getCallingUid(). - Android Platform Guidance: Developers should adhere to the Android Security Bulletin's guidance on exported components — never export an activity unless it is strictly necessary, and when exported, apply signature-level permissions.
- Enterprise Policy: Implement Google Play Protect, enforce Unknown Sources restrictions, and enable Android Enterprise Advanced Protection for corporate-owned devices.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-47361 — Contains the official NVD description, CWE classification (CWE-926: Improper Export of Android Application Components), and CNA metadata.
- CWE-926 Reference: https://cwe.mitre.org/data/definitions/926.html — MITRE CWE entry describing the vulnerability class for improperly exported Android components.
- Android Security Bulletin (General Guidance): https://source.android.com/docs/security/bulletin — Android platform guidance on exported component security, permission enforcement, and
NotificationManagerbest practices. While not specific to this CVE, it provides the architectural context for the flaw. - Datadog Security Advisories: https://security.datadoghq.com — Official vendor security advisory page; currently no advisory for CVE-2026-47361 has been published, making this a monitoring reference for future disclosures.
Threat Actor Campaign Evidence: No active campaigns or exploit-in-the-wild evidence has been publicly reported for CVE-2026-47361 as of this report. The vulnerability requires local co-installed application access and yields only a denial-of-service impact, making it a low-priority target for advanced persistent threat actors. However, the phishing facilitation angle (notification suppression as a precursor to social engineering) makes it a plausible tool in mobile ransomware or financial fraud campaigns.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.