Skip to main content

OneUptime CVE-2026-33143

HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-03-18 https://github.com/OneUptime/oneuptime GHSA-g5ph-f57v-mwjc
8.7
CVSS 4.0 · Vendor: https://github.com/OneUptime/oneuptime
View

Attack ChainAIDerived

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

  1. Access
    Reach exposed webhook endpoint
  2. Delivery
    Send unsigned forged POST payload
  3. Exploit
    Bypass absent HMAC signature check
  4. Execution
    Overwrite WhatsApp notification status records
  5. Impact
    Suppress alerts and corrupt audit trail

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

No special conditions - remote unauthenticated POST to /api/notification/whatsapp/webhook against a default OneUptime configuration (reproduced on v10.0.23 via docker compose up); the POST handler performs no X-Hub-Signature-256 HMAC verification at all. The endpoint must be network-reachable by the attacker (an instance exposed to the internet or to an untrusted network). Practical limiting factor: to forge a status update for a specific notification the attacker benefits from supplying plausible identifiers (WABA id, phone_number_id, message/wamid), but the endpoint accepts arbitrary unsigned payloads, so broad forgery requires no secrets. Note the GET verification endpoint and the Slack webhook are unaffected - only the WhatsApp POST handler is vulnerable.

Impact

Signals are consistent and point to a genuine but bounded-impact integrity flaw rather than a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms remote, unauthenticated, low-complexity exploitation with no user interaction, and impact is correctly scoped to integrity only (VI:H, with VC:N and VA:N) - this is data-forgery/spoofing of notification status and audit records, not code execution or data theft. Working exploit code is published in the GHSA advisory (publicly available exploit code exists), yet EPSS is only 0.03% (7th percentile) and the vulnerability is NOT on CISA KEV, which is coherent: the flaw targets a niche self-hosted monitoring product and yields integrity manipulation rather than system compromise, so mass automated exploitation is unlikely. The CWE (CWE-345, insufficient verification of data authenticity) matches the description precisely. No conflicting signals were found between CVSS, description, and PoC. Bottom line: prioritize patching for organizations that actually run OneUptime and depend on WhatsApp notifications for on-call/alerting, because alert suppression during incidents is a real operational risk, but this is not a widespread-exploitation 'drop everything' issue for the general population.

Exploit ScenarioDerived

An unauthenticated attacker who can reach the OneUptime instance sends a crafted POST to /api/notification/whatsapp/webhook with a 'whatsapp_business_account' payload and no X-Hub-Signature-256 header, which the handler accepts and processes. During an active incident, the attacker forges 'delivered' status updates for WhatsApp on-call notifications so failed deliveries appear successful, suppressing escalation and retries while corrupting the audit trail. A working PoC curl command is published in the GitHub Security Advisory (GHSA-g5ph-f57v-mwjc).

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

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

Alert me

AnalysisAIv2 – Oct 07, 2026

Unsigned WhatsApp webhook processing in OneUptime before 10.0.34 lets any remote, unauthenticated attacker POST forged Meta/WhatsApp status events to /api/notification/whatsapp/webhook and rewrite notification delivery records - marking failed alerts as delivered, suppressing escalation, and corrupting the notification audit trail. The advisory ships a working curl proof-of-concept demonstrating HTTP 200 acceptance of an unsigned payload on a default v10.0.23 Docker deployment, so publicly available exploit code exists; however there is no confirmed actively exploited (CISA KEV) activity, and EPSS is very low at 0.03% (7th percentile), reflecting the narrow integrity-only impact. Exploitation requires only that the instance's API be network-reachable; no credentials or secrets are needed, and the GET verification endpoint and the Slack webhook path are unaffected.

Earlier versions of this analysis (1)
v1 Mar 18, 2026 - 17:25 CVSS 7.5

The OneUptime monitoring platform (specifically version 10.0.23 and likely earlier versions) contains an authentication bypass vulnerability in its WhatsApp webhook handler that fails to verify the X-Hub-Signature-256 HMAC signature required by Meta/WhatsApp. Any unauthenticated remote attacker can send forged webhook payloads to manipulate notification delivery status records, suppress critical alerts, and corrupt audit trails. A working proof-of-concept exploit has been published demonstrating successful injection of arbitrary webhook events via simple HTTP POST requests with no authentication required.

RemediationAI

Vendor-released patch: upgrade OneUptime to 10.0.34 or later, which adds X-Hub-Signature-256 HMAC verification to the WhatsApp POST webhook handler; pull the updated oneuptime/app image and redeploy (per the advisory at https://github.com/OneUptime/oneuptime/security/advisories/GHSA-g5ph-f57v-mwjc). If immediate upgrade is not possible, apply compensating controls at the network edge rather than in the application: restrict inbound access to /api/notification/whatsapp/webhook so only Meta/WhatsApp webhook source IP ranges can reach it (via reverse-proxy ACL, WAF rule, or firewall), with the trade-off that legitimate delivery-status callbacks are blocked whenever Meta changes or adds egress addresses, degrading notification status accuracy; alternatively terminate the path entirely at the proxy and return 403 - this preserves the integrity of notification logs but disables real-time WhatsApp delivery tracking and any retry logic keyed to status events. If WhatsApp notifications are not business-critical, disable the WhatsApp notification provider/integration in OneUptime to remove the endpoint's usefulness to an attacker, accepting loss of that alert channel. Do not rely on the endpoint being 'hard to guess': the path is fixed and documented, so unauthenticated access alone is sufficient for forgery - the practical limiting factor is only that forged statuses need plausible WABA/phone_number_id/message identifiers to affect a specific notification, not any secret.

Affected Packages

npm oneuptime fix: 10.0.34

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is CWE-345 (Insufficient Verification of Data Authenticity): the Express POST handler in App/FeatureSet/Notification/API/WhatsApp.ts (lines ~372-430) reads req.body directly and branches only on whether body.object equals "whatsapp_business_account", never computing or comparing an HMAC over the raw request body against the X-Hub-Signature-256 header that Meta/WhatsApp uses to authenticate webhook callbacks. The same codebase already does this correctly for Slack in Common/Server/Middleware/SlackAuthorization.ts, which computes a signature and compares it with crypto.timingSafeEqual, and the WhatsApp GET subscription endpoint correctly validates the hub.verify_token - so the omission is isolated to the event-processing POST path, not a design-wide weakness. Because the handler consumes attacker-controlled JSON and updates WhatsApp notification log records from it, an unauthenticated caller can drive state changes in the notification subsystem. The affected artifact is the npm package pkg:npm/oneuptime (self-hosted, typically run via Docker Compose); the assessed vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N reflects remote, unauthenticated access with a high integrity impact and no direct confidentiality or availability loss, consistent with the advisory's CVSS 4.0 rating of 8.7 whose dominant metric is also VI:H.

Know when Docker 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 (https://github.com/OneUptime/oneuptime) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote unauthenticated POST with no interaction (AV:N/AC:L/PR:N/UI:N); impact is forgery/corruption of notification status and audit records so I:H, with no confidentiality or availability loss (C:N/A:N).

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

Primary rating from Vendor (https://github.com/OneUptime/oneuptime).

CVSS VectorVendor: https://github.com/OneUptime/oneuptime

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Analysis Updated
Oct 07, 2026 - 08:28 vuln.today
v2 - CVSS changed
CVSS changed
Oct 07, 2026 - 08:22 NVD
7.5 (HIGH) 8.7 (HIGH)
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
CVE Published
Mar 18, 2026 - 17:25 nvd
HIGH 7.5

DescriptionCVE.org

Summary

The WhatsApp POST webhook handler (/notification/whatsapp/webhook) processes incoming status update events without verifying the Meta/WhatsApp X-Hub-Signature-256 HMAC signature, allowing any unauthenticated attacker to send forged webhook payloads that manipulate notification delivery status records, suppress alerts, and corrupt audit trails. The codebase already implements proper signature verification for Slack webhooks.

Details

Vulnerable code - App/FeatureSet/Notification/API/WhatsApp.ts lines 372-430:

typescript
router.post(
  "/webhook",
  async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
    try {
      const body: JSONObject = req.body as JSONObject;
      // NO signature verification! No X-Hub-Signature-256 check!

      if (
        (body["object"] as string | undefined) !== "whatsapp_business_account"
      ) {
        return Response.sendEmptySuccessResponse(req, res);
      }

      const entries: JSONArray | undefined = body["entry"] as JSONArray | undefined;
      // ... processes entries and updates WhatsApp log status records

Compare with the Slack webhook which correctly validates signatures:

Common/Server/Middleware/SlackAuthorization.ts line 58:

typescript
const isValid = crypto.timingSafeEqual(
    Buffer.from(computedSignature),
    Buffer.from(slackSignature)
);

The WhatsApp GET webhook correctly validates the verify token - only the POST handler (which processes actual events) is missing signature verification.

No existing CVEs cover webhook signature verification issues in OneUptime. The closest is GHSA-cw6x-mw64-q6pv (WhatsApp Resend Verification Auth Bypass), which is about a different WhatsApp-related authorization issue.

PoC

Environment: OneUptime v10.0.23 via docker compose up (default configuration)

bash
# Forge a delivery status update for any WhatsApp notification - no auth, no signature
curl -sv -X POST http://TARGET:8080/api/notification/whatsapp/webhook \
  -H "Content-Type: application/json" \
  -d '{
    "object": "whatsapp_business_account",
    "entry": [{
      "id": "FAKE_WABA_ID",
      "changes": [{
        "value": {
          "messaging_product": "whatsapp",
          "metadata": {
            "display_phone_number": "+15550000000",
            "phone_number_id": "FAKE_PHONE_ID"
          },
          "messages": [{
            "from": "15551234567",
            "id": "wamid.FAKE",
            "timestamp": "1234567890",
            "text": {"body": "INJECTED_MESSAGE"},
            "type": "text"
          }]
        },
        "field": "messages"
      }]
    }]
  }'

Docker validation (oneuptime/app:release, APP_VERSION=10.0.23):

< HTTP/1.1 200 OK
{}
  • Fake WhatsApp webhook payload accepted with HTTP 200
  • No X-Hub-Signature-256 header provided - no signature verification at all
  • Attacker can inject arbitrary inbound WhatsApp messages and forge delivery status updates

Impact

Any unauthenticated remote attacker can forge WhatsApp webhook events:

  • False delivery status: Mark undelivered WhatsApp notifications as "delivered", hiding delivery failures from administrators
  • Alert suppression: Critical on-call notifications that failed to deliver appear successful, preventing escalation
  • Log manipulation: WhatsApp notification logs updated with forged status data, corrupting audit trails
  • Incident response disruption: During active incidents, forging "delivered" statuses prevents the system from retrying failed notification deliveries

Executive ViewAI

Why It Matters

OneUptime deployments running versions before 10.0.34 accept unsigned WhatsApp webhook traffic, letting anyone who can reach the API rewrite notification delivery records, mark failed alerts as delivered, and suppress escalation to on-call staff. Leadership should care because this silently corrupts the audit trail that incident response depends on - outages can go unnoticed while the system reports successful delivery - and publicly available exploit code exists, although there is no confirmed actively exploited (CISA KEV) activity and the issue is integrity-only, with no credential theft or data disclosure.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 93% exploitable
Prevalence
Low
self-hosted open-source monitoring platform, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.0%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Affected Products (CPE)CVE.org

pkg:npm/oneuptime

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2025-14707 HIGH POC
8.9 Dec 15

Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

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