Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach realtime internal port on adjacent network
-
DeliveryPOST /internal/agent-event or /internal/push with spoofed tenant_id
-
ExploitGuard accepts unauthenticated request
-
ExecutionBroadcast malicious event over WebSocket/Redis SSE or push notifications
-
ImpactTenant clients/devices receive spoofed content
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires reaching AiSOC's realtime service internal fan-out endpoints (POST /internal/agent-event, POST /internal/push), which in default deployments are service-to-service routes bound within the container/deployment network - hence adjacent-network access (AV:A), not full internet exposure. No authentication, user interaction, or special feature toggle is needed: the guard treated the unset REALTIME_INTERNAL_TOKEN as authorized in every shipped configuration, so the flaw is present by default in affected versions. What LIMITS realistic exploitation: the attacker must have network reachability to the internal realtime port (mitigated by proper network segmentation), impact is confined to integrity of broadcast events/notifications (no data exfiltration or service outage), and the product has a very small deployment base. Fixed in v12.0.0, which requires generating and passing REALTIME_INTERNAL_TOKEN. |
| Impact | This is a genuine but moderate-impact authentication flaw. The CWE-306 (missing authentication) issue lets any caller reaching AiSOC's realtime service /internal/* fan-out endpoints post events with arbitrary spoofed tenant identifiers, because the service-to-service guard treated an unset REALTIME_INTERNAL_TOKEN as authorized and no deployment manifest ever set it - confirmed directly by the vendor commit diff and advisory GHSA-mqjp-pcpr-7c37. The VulnCheck/vendor CVSS 4.0 vector (AV:A/AC:L/PR:N/UI:N, VC:N/VI:L/VA:N, score 5.3) is internally consistent with the description: unauthenticated, low-complexity, adjacent-network reach, and integrity-only impact (spoofed broadcasts/notifications) with no confidentiality or availability loss. The AV:A (adjacent) choice reflects that these are internal service-to-service routes normally reachable only within the deployment network rather than internet-facing - if an operator exposes the realtime port publicly the practical vector becomes network (AV:N), so deployment topology should be verified. No EPSS score, no CISA KEV listing, and no public proof-of-concept are present in the input, so this is not evidence of active exploitation. Net: a real, patchable priority for AiSOC operators but not a widespread-exploitation emergency, tempered by the product's small footprint and integrity-only (VI:L) impact ceiling. Note the commit also fixes a related published-constant ticket-secret fallback (GHSA-4m55-xhcm-wjcr), a distinct issue bundled in the same release. |
| Exploit ScenarioDerived | An attacker with adjacent-network access to the AiSOC realtime service sends an unauthenticated POST to /internal/agent-event or /internal/push carrying a spoofed tenant_id, since the missing REALTIME_INTERNAL_TOKEN guard accepts any caller. This lets them broadcast attacker-controlled content to other tenants' WebSocket/Redis SSE subscribers or push unauthorized notifications to that tenant's registered devices. No public exploit code is identified at time of analysis, but the vendor commit and advisory document the flaw precisely. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Missing authentication on AiSOC's realtime service internal fan-out routes allows any caller that can reach the realtime port (adjacent-network access, no credentials, no user interaction) to inject spoofed agent events and unauthorized device notifications for arbitrary tenant IDs into the platform's WebSocket and Redis SSE broadcast channels, corrupting the integrity of what analysts see in AiSOC 5.1.0 through 11.x. The flaw is present by default: the guard protecting POST /internal/agent-event and POST /internal/push treated an unset REALTIME_INTERNAL_TOKEN as authorized, and no shipped manifest ever passed that variable, so authentication was effectively absent in every default deployment of affected versions. Impact is integrity-only with no data disclosure or denial of service, the affected deployment base is small, and exploitation is largely constrained to networks where the target's internal realtime service is reachable; no public exploit identified at time of analysis, and a vendor fix exists in v12.0.0.
RemediationAI
Vendor-released patch: v12.0.0 - upgrade to AiSOC 12.0.0 or later, which makes REALTIME_INTERNAL_TOKEN mandatory, generates a 32-byte random value through scripts/ensure_env.py (make up), and passes it via docker-compose to both the realtime container and the API container that calls the /internal/* fan-out routes; the guard now fails closed instead of treating an unset token as authorized (see commit 2f0e954 at https://github.com/beenuar/AiSOC/commit/2f0e954f2febecb3720e6eadb017546c5d121c43 and the release at https://github.com/beenuar/AiSOC/releases/tag/v12.0.0, with the advisory at https://github.com/beenuar/AiSOC/security/advisories/GHSA-mqjp-pcpr-7c37). If upgrading immediately is not possible, the primary compensating control is network-level: keep the realtime service's internal port off any untrusted or cross-tenant network segment and restrict it to the API/agent workloads that legitimately call it, since the assessed vector is adjacent-network access - the trade-off is that flat or shared container networks void this protection entirely. As a second control, operators on pre-12.0.0 builds whose guard honors a configured value can set a strong random REALTIME_INTERNAL_TOKEN and pass the same value to realtime and to every caller, but this must be verified against your build and applied atomically: callers that fail to send the matching x-internal-token header will have their fan-out requests rejected, silently breaking live event delivery and notifications, and the token must never be reused from an existing checkout because prior constants are published in the repository history. Note that hardening the realtime ticket HMAC key (AISOC_REALTIME_JWT_SECRET) is a related but separate fix covered by a different advisory; it does not close the /internal/* bypass on its own.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AiSOC is an AI security-operations platform whose realtime service (a TypeScript/Node component under services/realtime/src/index.ts) fans out live events to clients over WebSocket and Redis-backed SSE channels. API and agent components call its internal service-to-service routes, POST /internal/agent-event and POST /internal/push, carrying a shared bearer in the x-internal-token header. The root cause is CWE-306 (Missing Authentication for Critical Function): the guard on those routes treated an unset REALTIME_INTERNAL_TOKEN as authorized rather than failing closed, and neither docker-compose nor the environment-generation tooling ever supplied the variable, so the fail-open branch was the operative path in every shipped configuration. A caller who can reach the realtime port can therefore post an arbitrary event body, including a forged tenant_id, and have it broadcast to that tenant's subscribers or pushed to registered devices - manipulating displayed telemetry and notifications rather than reading data or disrupting service (the assessed vector is AV:A/PR:N with integrity-only impact). The upstream fix commit (2f0e954) makes the variable mandatory, generates it via scripts/ensure_env.py for make up, and threads it through docker-compose to both the realtime and API containers; the same commit also removes a separate, published development fallback for the realtime ticket HMAC key (tracked as its own advisory, GHSA-4m55-xhcm-wjcr) and adds a deny-list entry for that old constant, which is a distinct issue from the /internal/* authentication bypass described here and should not be conflated with it.
Know when Aisoc 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
CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Internal service-to-service endpoint reachable on adjacent network (AV:A), no auth (PR:N) or interaction (UI:N); impact is spoofed events/notifications only, so I:L with C:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
AiSOC versions 5.1.0 before 12.0.0 contain an authentication bypass vulnerability in the realtime service internal endpoints POST /internal/agent-event and POST /internal/push. Attackers can post arbitrary events with spoofed tenant identifiers to broadcast malicious content over WebSocket and Redis SSE channels or send unauthorized notifications to registered devices.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-89541
GHSA-qmvw-gcv8-mfgm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB