Skip to main content

AiSOC EUVDEUVD-2026-89539

| CVE-2026-103055 HIGH
Use of Hard-coded Cryptographic Key (CWE-321)
2026-09-30 VulnCheck GHSA-j6w5-vmvx-vgrp
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach realtime WebSocket/SSE endpoint
  2. Delivery
    Sign ticket with published JWT constant
  3. Exploit
    Set arbitrary tenant_id in ticket
  4. Execution
    Connect and subscribe as victim tenant
  5. Impact
    Exfiltrate cross-tenant alerts, cases, graph events

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Key management, no hard-coded keys
Exploitation Conditions

Exploitable only when the AISOC_REALTIME_JWT_SECRET environment variable is unset, which per the patch commit was the case in every shipped deployment because no docker-compose or make manifest ever passed the variable - so the realtime service fell back to the constant published in the repository. The attacker must be able to reach the realtime WebSocket/SSE endpoint and forge an HS256 ticket signed with that known constant. Fixed configurations that explicitly set a real AISOC_REALTIME_JWT_SECRET (v12.0.0 generates one via 'make up') are not vulnerable, and the ticket endpoint now fails closed (503) when the secret is empty. No user interaction or authentication is required against affected versions (7.5.0 before 12.0.0).

Impact

This is a genuine, high-confidence authentication bypass rather than an inflated high-CVSS finding, but its real-world priority is dampened by an extremely small deployment footprint. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VC:H) describes exactly what the source diff confirms: the realtime service verified HS256 ticket signatures against a fallback constant ('aisoc-dev-realtime-ticket-secret-not-for-production') that was committed to the public repository, and no deployment manifest ever supplied the real AISOC_REALTIME_JWT_SECRET - so that published constant was the effective key in every deployment. That makes unauthenticated cross-tenant forgery trivially reproducible for anyone who can read the repo. The 8.7 score is confidentiality-only (VI:N/VA:N); despite the 'RCE' tag, there is no code-execution or integrity/availability impact in the described vector. No EPSS score, no CISA KEV listing, and no explicit public exploit are provided - exploitation status is 'no public exploit identified,' though the leaked constant lowers the barrier to weaponization considerably. Net: technically serious and easy to trigger, but the affected product is an obscure open-source project, so this is a targeted-risk item for the small population running it, not a widespread threat.

Exploit ScenarioDerived

An unauthenticated attacker who can reach the AiSOC realtime WebSocket/SSE endpoint signs a subscription ticket using the well-known JWT secret hard-coded in the public repository, setting an arbitrary tenant_id. They connect to the realtime edge and receive another tenant's live security alerts, case data, agent events, and graph updates. No public exploit is identified at time of analysis, but the required signing key is published in the project's own git history, making forgery straightforward.

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

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

Alert me

AnalysisAIv1 – Sep 30, 2026

Authentication bypass in AiSOC 7.5.0 through 11.x lets unauthenticated remote attackers subscribe to realtime WebSocket/SSE channels belonging to any tenant, exposing live alerts, cases, agent events, and graph updates. The realtime edge verifies subscription tickets with a hard-coded HS256 key committed to the repository, and per the patch commit that constant was the effective key in every shipped deployment because no docker-compose or make manifest ever passed AISOC_REALTIME_JWT_SECRET to either the API or the realtime service. Version 12.0.0 removes the fallback entirely and generates a real secret, so only deployments that explicitly set the variable are unaffected; no public exploit code identified at time of analysis, and the assessed impact is confidentiality-only against a very small deployment footprint.

RemediationAI

Vendor-released patch: 12.0.0 (https://github.com/beenuar/AiSOC/releases/tag/v12.0.0); the fixing change is commit 2f0e954f2febecb3720e6eadb017546c5d121c43, which can also be applied directly if upgrading is not immediately possible. After upgrading, run 'make up' (or generate the value manually with python -c "import secrets; print(secrets.token_hex(32))") and set AISOC_REALTIME_JWT_SECRET on both the API and realtime services so a strong per-deployment key is used; never reuse the historical constant aisoc-dev-realtime-ticket-secret-not-for-production, which is permanently exposed in git history, and treat any deployment that previously ran on that key as compromised for cross-tenant data disclosure. Also set REALTIME_INTERNAL_TOKEN for the realtime /internal/* fan-out routes, since the pre-12.0.0 guard treated an unset token as authorized. If patching must be deferred, explicitly setting AISOC_REALTIME_JWT_SECRET to a strong random value restores ticket verification integrity; leaving it unset is fail-closed in the patched code (ticket endpoint returns 503 and realtime rejects all connections) but on unpatched code it is fail-open. As a compensating control with a functional trade-off, restrict network access to the realtime WebSocket/SSE port to trusted clients only, since the forgery requires reaching that endpoint and these controls do not remediate the underlying key exposure. See https://github.com/beenuar/AiSOC/security/advisories/GHSA-4m55-xhcm-wjcr and the VulnCheck advisory for further detail.

Affected VersionsENISA

AiSOC 7.5.0 <12.0.0

Affected Packages

euvd aisoc fix: 12.0.0

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's realtime layer issues short-lived subscription tickets that clients present on WebSocket and Server-Sent Events connections; the API mints them and the Node realtime service verifies them with an HMAC-SHA256 (HS256) key supplied via the AISOC_REALTIME_JWT_SECRET environment variable. CWE-321 (Use of Hard-coded Cryptographic Key) is the root cause: when the variable was unset, services/realtime/src/auth.ts (lines 51-59 in v11.2.0) and the Python settings helper fell back to a development constant published in the repository, so the signing/verification key was identical and publicly known. The ticket carries a tenant identifier claim, so an attacker who knows the key can mint a valid ticket for any tenant_id and read cross-tenant live data. The upstream fix also closes a related defect in the same code path: the /internal/* fan-out routes used a guard that treated an unset REALTIME_INTERNAL_TOKEN as authorized, allowing any caller that could reach the port to request arbitrary tenant_id data; the new REALTIME_INTERNAL_TOKEN (sent as x-internal-token) is generated alongside the JWT secret. Both sides now fail closed when the secret is empty, and the old constant is explicitly rejected if copied from an older checkout.

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Remote, unauthenticated ticket forgery using a published constant (AV:N/AC:L/PR:N/UI:N); impact is cross-tenant read access only, so C:H with I:N/A:N.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

AiSOC versions 7.5.0 before 12.0.0 use a hard-coded constant for JWT verification in the realtime WebSocket and SSE service when the AISOC_REALTIME_JWT_SECRET environment variable is not set. Unauthenticated attackers can forge subscription tickets with arbitrary tenant identifiers to access cross-tenant live alerts, cases, agent events and graph updates through the realtime endpoints.

Technical POC Analysis

The flaw is a hard-coded cryptographic key used as the JWT verification key for realtime subscription tickets (CWE-321; the advisory also assigns CWE-798 and CWE-287).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

AiSOC deployments running versions 7.5.0 through 11.x can expose live security operations data - realtime alerts, cases, agent events, and graph updates - to remote parties able to reach the realtime WebSocket/SSE edge, and because subscription tickets are validated against a hard-coded key that shipped as the effective secret in every default deployment, exposure can cross tenant boundaries. Leadership should care because the data at risk is the sensitive operational telemetry security teams depend on, and confirmed cross-tenant access could trigger contractual, privacy, and customer-notification obligations. Remediation is available and low-effort: upgrade to 12.0.0, which removes the fallback key entirely, or explicitly set the realtime secret so affected deployments are no longer reliant on the committed constant.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Rare
obscure open-source SOC project on GitHub, no evident enterprise footprint
Social Media
1
Sightings
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.4%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

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.

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