Vulnerabilities in pkg:npm/@oneuptime/common
PACKAGECVE-2026-30959 is a MODERATE oneuptime has whatsapp resend verification vulnerability (CWE-639: Authorization Bypass Through User-Controlled Key) affecting @oneuptime/common libraries in the npm ecosystem. The issue involves oneuptime has whatsapp resend verification authorization bypass. Remediation is available by upgrading affected packages to version 10.0.21.
pkg:npm/@oneuptime/common
Vulnerability advisories affecting package pkg:npm/@oneuptime/common. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-cw6x-mw64-q6pv | CVE-2026-30959 | MODERATE | OneUptime has WhatsApp Resend Verification Authorization Bypass |
| GHSA-jw8q-gjvg-8w4q | CVE-2026-30957 | CRITICAL | OneUptime has Synthetic Monitor RCE via exposed Playwright browser object |
| GHSA-r5v6-2599-9g3m | CVE-2026-30956 | CRITICAL | OneUptime has authorization bypass via client‑controlled is-multi-tenant-query header that leads to cross‑tenant data exposure and account takeover |
| GHSA-4j36-39gm-8vq8 | CVE-2026-30921 | CRITICAL | OneUptime: Synthetic Monitor RCE via exposed Playwright browser object |
| GHSA-656w-6f6c-m9r6 | CVE-2026-30920 | HIGH | OneUptime has broken access control in GitHub App installation flow that allows unauthorized project binding |
| GHSA-h343-gg57-2q67 | CVE-2026-30887 | CRITICAL | OneUpTime's Unsandboxed Code Execution in Probe Allows Any Project Member to Achieve RCE |
| GHSA-gjjc-pcwp-c74m | CVE-2026-28787 | HIGH | OneUptime has WebAuthn 2FA bypass: server accepts client-supplied challenge instead of server-stored value, allowing credential replay |
| GHSA-jmhp-5558-qxh5 | CVE-2026-27728 | CRITICAL | OneUptime: OS Command Injection in Probe NetworkPathMonitor via unsanitized destination in traceroute exec() |
| GHSA-v264-xqh4-9xmm | CVE-2026-27574 | CRITICAL | OneUptime:: node:vm sandbox escape in probe allows any project member to achieve RCE |
| GHSA-m449-vh5f-574g | CVE-2025-65966 | HIGH | OneUptime Unauthorized User Creation via API |
| GHSA-675q-66gf-gqg8 | CVE-2025-66028 | MODERATE | OneUptime is Vulnerable to Privilege Escalation via Login Response Manipulation |
CVE-2026-30959 at a Glance
How to Fix CVE-2026-30959
To remediate this vulnerability, upgrade all affected @oneuptime/common dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install @oneuptime/common@10.0.21
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls @oneuptime/common
How to Check if You Are Affected
To determine whether your Node.js application is affected by CVE-2026-30959, inspect your project dependencies using npm:
npm ls @oneuptime/common
Analyze the terminal output to locate any version of @oneuptime/common in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 10.0.21), your application is affected.
Note: The npm ls @oneuptime/common command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-639: Authorization Bypass Through User-Controlled Key, where the system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data. In @oneuptime/common, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-30959 Affected @oneuptime/common Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
@oneuptime/common
|
npm |
< 10.0.21
|
10.0.21
|
References
Frequently Asked Questions
What is CVE-2026-30959?
Which @oneuptime/common versions are affected?
What version fixes CVE-2026-30959?
Is @oneuptime/common affected?
What CWE is associated with CVE-2026-30959?
How can I check npm dependencies for CVE-2026-30959?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-cw6x-mw64-q6pv",
"modified" : "2026-03-10T18:45:24Z",
"published" : "2026-03-10T01:15:30Z",
"aliases" : [ "CVE-2026-30959" ],
"summary" : "OneUptime has WhatsApp Resend Verification Authorization Bypass",
"details" : "### Description \n The resend-verification-code endpoint allows any authenticated user to trigger a verification code resend for any `UserWhatsApp` record by ID. Ownership is not validated (unlike the verify endpoint).\n\n### Affected Source \n- Endpoint: [UserWhatsAppAPI.ts](https://github.com/OneUptime/oneuptime/Common/Server/API/UserWhatsAppAPI.ts#L129-L153) \n- Service: [UserWhatsAppService.ts](https://github.com/OneUptime/oneuptime/Common/Server/API/UserWhatsAppAPI.ts#L129-L153) \n- Verify ownership (present in verify endpoint for comparison): [UserWhatsAppAPI.ts](https://github.com/OneUptime/oneuptime/Common/Server/API/UserWhatsAppAPI.ts#L78-L87)\n\n\n### Full Code Lines (UserWhatsAppAPI.ts)\n\nResend path (authorization gap):\n\n```ts\n this.router.post(\n `${new this.entityType()\n .getCrudApiPath()\n ?.toString()}/resend-verification-code`,\n UserMiddleware.getUserMiddleware,\n async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {\n try {\n req = req as OneUptimeRequest;\n\n if (!req.body.itemId) {\n return Response.sendErrorResponse(\n req,\n res,\n new BadDataException(\"Invalid item ID\"),\n );\n }\n\n await this.service.resendVerificationCode(req.body.itemId);\n\n return Response.sendEmptySuccessResponse(req, res);\n } catch (err) {\n return next(err);\n }\n },\n );\n```\n\nVerify path (ownership check present):\n\n```ts\n if (\n item.userId?.toString() !==\n (req as OneUptimeRequest)?.userAuthorization?.userId?.toString()\n ) {\n return Response.sendErrorResponse(\n req,\n res,\n new BadDataException(\"Invalid user ID\"),\n );\n }\n```\n\n## Prerequisites\n- Valid attacker account with access to a project\n- Attacker access token\n- A victim’s `UserWhatsApp` itemId belonging to the same project\n\n## Steps to Reproduce\n1. Set your attacker token:\n\n ```bash\n export ATK=\"Bearer <attacker-access-token>\"\n ```\n\n2. Trigger resend for the victim’s item:\n\n ```bash\n curl -s -X POST \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: $ATK\" \\\n -d '{\"itemId\":\"<victim-userwhatsapp-id>\"}' \\\n http://<host>/api/user-whats-app/resend-verification-code\n ```\n\n## Expected/Observed Behavior\n- HTTP 200 with `{}` body and a new verification code sent to the victim’s phone\n- No checks confirm that `item.userId` equals the authenticated user’s ID for the resend path\n\n## Impact\n- Spam/DoS against victims’ phone numbers, social engineering pressure, and potential lockout flows due to repeated resends\n\n## Recommended Fix\n- Enforce ownership: `item.userId` must match the authenticated user\n- Add per-item and per-user rate limiting for resends",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "@oneuptime/common"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "10.0.21"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/OneUptime/oneuptime/security/advisories/GHSA-cw6x-mw64-q6pv"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-30959"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/OneUptime/oneuptime"
}, {
"type" : "WEB",
"url" : "https://github.com/OneUptime/oneuptime/releases/tag/10.0.21"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-285", "CWE-307", "CWE-639", "CWE-862" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-10T01:15:30Z",
"nvd_published_at" : "2026-03-10T18:18:55Z"
}
}