{"api_version":"1","generated_at":"2026-10-15T03:35:48+00:00","cve":"CVE-2026-100394","urls":{"html":"https://cve.report/CVE-2026-100394","api":"https://cve.report/api/cve/CVE-2026-100394.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-100394","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-100394"},"summary":{"title":"Nezha Monitoring: Whole-instance DoS in Nezha dashboard: a member can crash the process for every tenant","description":"Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. From 2.2.7 until 2.2.11, ServiceSentinel.worker in service/singleton/servicesentinel.go checked an owned service under servicesLock and later dereferenced pointer-valued serviceStatusToday and serviceCurrentStatusData entries under serviceResponseDataStoreLock without revalidating that ServiceSentinel.Delete had not removed them. A RoleMember could concurrently report TCP or ICMP results through the member's own agent and delete the same owned service, causing a nil pointer dereference. Because the gRPC server had no recovery interceptor, the worker panic terminated the whole dashboard process and disrupted every tenant's web interface, REST API, and agent connections. The issue affects availability only and does not disclose or modify data. This issue is fixed in versions 2.2.11 and 2.3.0.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-10-14 16:17:28","updated_at":"2026-10-14 16:17:28"},"problem_types":["CWE-362","CWE-476","CWE-362 CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')","CWE-476 CWE-476: NULL Pointer Dereference"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"references":[{"url":"https://github.com/nezhahq/nezha/security/advisories/GHSA-qjpp-gffx-2wm9","name":"https://github.com/nezhahq/nezha/security/advisories/GHSA-qjpp-gffx-2wm9","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nezhahq/nezha/releases/tag/v2.3.0","name":"https://github.com/nezhahq/nezha/releases/tag/v2.3.0","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nezhahq/nezha/commit/c893aa57867d8a3d608e2f2f16d1594c9766cdf3","name":"https://github.com/nezhahq/nezha/commit/c893aa57867d8a3d608e2f2f16d1594c9766cdf3","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nezhahq/nezha/releases/tag/v2.2.11","name":"https://github.com/nezhahq/nezha/releases/tag/v2.2.11","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100394","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100394","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"nezhahq","product":"nezha","version":"affected >= 2.2.7, < 2.2.11","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"nezha","vendor":"nezhahq","versions":[{"status":"affected","version":">= 2.2.7, < 2.2.11"}]}],"descriptions":[{"lang":"en","value":"Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. From 2.2.7 until 2.2.11, ServiceSentinel.worker in service/singleton/servicesentinel.go checked an owned service under servicesLock and later dereferenced pointer-valued serviceStatusToday and serviceCurrentStatusData entries under serviceResponseDataStoreLock without revalidating that ServiceSentinel.Delete had not removed them. A RoleMember could concurrently report TCP or ICMP results through the member's own agent and delete the same owned service, causing a nil pointer dereference. Because the gRPC server had no recovery interceptor, the worker panic terminated the whole dashboard process and disrupted every tenant's web interface, REST API, and agent connections. The issue affects availability only and does not disclose or modify data. This issue is fixed in versions 2.2.11 and 2.3.0."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-362","description":"CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-476","description":"CWE-476: NULL Pointer Dereference","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-14T15:38:47.079Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/nezhahq/nezha/security/advisories/GHSA-qjpp-gffx-2wm9","tags":["x_refsource_CONFIRM"],"url":"https://github.com/nezhahq/nezha/security/advisories/GHSA-qjpp-gffx-2wm9"},{"name":"https://github.com/nezhahq/nezha/commit/c893aa57867d8a3d608e2f2f16d1594c9766cdf3","tags":["x_refsource_MISC"],"url":"https://github.com/nezhahq/nezha/commit/c893aa57867d8a3d608e2f2f16d1594c9766cdf3"},{"name":"https://github.com/nezhahq/nezha/releases/tag/v2.2.11","tags":["x_refsource_MISC"],"url":"https://github.com/nezhahq/nezha/releases/tag/v2.2.11"},{"name":"https://github.com/nezhahq/nezha/releases/tag/v2.3.0","tags":["x_refsource_MISC"],"url":"https://github.com/nezhahq/nezha/releases/tag/v2.3.0"}],"source":{"advisory":"GHSA-qjpp-gffx-2wm9","discovery":"UNKNOWN"},"title":"Nezha Monitoring: Whole-instance DoS in Nezha dashboard: a member can crash the process for every tenant"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-100394","datePublished":"2026-10-14T15:38:47.079Z","dateReserved":"2026-09-25T20:08:33.083Z","dateUpdated":"2026-10-14T15:38:47.079Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-14 16:17:28","lastModifiedDate":"2026-10-14 16:17:28","problem_types":["CWE-362","CWE-476","CWE-362 CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')","CWE-476 CWE-476: NULL Pointer Dereference"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":2.8,"impactScore":3.6}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"100394","Ordinal":"1","Title":"Nezha Monitoring: Whole-instance DoS in Nezha dashboard: a membe","CVE":"CVE-2026-100394","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"100394","Ordinal":"1","NoteData":"Nezha Monitoring is a self-hostable, lightweight, servers and websites monitoring and O&M tool. From 2.2.7 until 2.2.11, ServiceSentinel.worker in service/singleton/servicesentinel.go checked an owned service under servicesLock and later dereferenced pointer-valued serviceStatusToday and serviceCurrentStatusData entries under serviceResponseDataStoreLock without revalidating that ServiceSentinel.Delete had not removed them. A RoleMember could concurrently report TCP or ICMP results through the member's own agent and delete the same owned service, causing a nil pointer dereference. Because the gRPC server had no recovery interceptor, the worker panic terminated the whole dashboard process and disrupted every tenant's web interface, REST API, and agent connections. The issue affects availability only and does not disclose or modify data. This issue is fixed in versions 2.2.11 and 2.3.0.","Type":"Description","Title":"Nezha Monitoring: Whole-instance DoS in Nezha dashboard: a membe"}]}}}