Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach worker HTTP port via public Coolify FQDN
-
DeliveryLoad Bull Board dashboard unauthenticated
-
ExploitQuery /api/queues, /metrics, /healthcheck for data
-
ExecutionInvoke mutating Bull Board APIs (add/retry/clean)
-
ImpactRead job payloads and tamper with queue state
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 | The attacker must be able to reach the worker HTTP port (WORKER_PORT, default 3000) where Bull Board is mounted at '/' with no auth middleware and DISABLE_BULLBOARD left at its default (off). This is NOT reachable in the shipped docker-compose.template.yml, which does not publish the worker port to the host - the concrete public path is the Coolify self-host template, which assigns SERVICE_FQDN_OPBULLBOARD and exposes the UI on a public hostname (the test instance bound *:9999 on all interfaces). No authentication, privileges, or user interaction are required once the port is reachable. Limiting factors: exposure is entirely deployment/proxy-dependent (loopback-bound or unproxied installs are not exposed); confidentiality of job payloads depends on queues actually being populated (event-queue bodies were empty on the test instance); and a successful privileged/crafted job add was not demonstrated, so integrity impact beyond retry/clean/metadata reads is unproven. |
| Impact | Signals converge on a genuine-but-moderate priority rather than an emergency. The vendor CVSS 4.0 base is 6.9 and the GHSA analysts independently rate CVSS 3.1 at 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) - network-reachable, no privileges, no user interaction, but deliberately capped at Low confidentiality and Low integrity because the analysts only demonstrated queue/metric reads and an add request that reached Redis without creating a job; they explicitly say not to raise to High without a successful privileged-job add or a dump of sensitive payloads. EPSS is low at 0.27% (19th percentile) and the CVE is NOT in CISA KEV, so there is no evidence of active or widespread exploitation; the vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a patch-this-cycle posture. The most important nuance the raw CVSS hides is exposure-dependence: the shipped docker-compose.template.yml does NOT publish the worker port to the host, so AV:N is only realized when an operator fronts the port with a proxy - the Coolify self-host template does exactly that by assigning SERVICE_FQDN_OPBULLBOARD, which is the concrete public path. A PoC walkthrough in the advisory confirms unauthenticated reads work; the mutating path is plausible but not proven. Net: real and worth patching this month, especially for Coolify deployments, but not a drop-everything issue given low EPSS, no KEV, and Low/Low impact. |
| Exploit ScenarioDerived | An attacker who can reach the OpenPanel worker HTTP port - most realistically via a Coolify self-host that publishes SERVICE_FQDN_OPBULLBOARD on a public hostname - loads the Bull Board dashboard with no login and calls GET /api/queues to enumerate queues (group_events, sessions, cron, notification, etc.) and read job data, Prometheus /metrics, and /healthcheck datastore readiness. Because every queue returns readOnlyMode:false and allowRetries:true, the attacker can also invoke mutating endpoints to add, retry, or clean jobs. A public PoC reference exists in the advisory demonstrating the unauthenticated GET reads; it is not verified as working exploit code for a successful crafted job add (the demonstrated POST returned HTTP 500 from a Redis Lua script and created no job). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated access to the Bull Board queue dashboard in OpenPanel self-hosted deployments before 3.0.0 exposes queue administration on the worker HTTP port: anyone who can reach that port can load the dashboard, list every BullMQ queue (with readOnlyMode:false and allowRetries:true), read queue data, Prometheus metrics and Redis/PostgreSQL/ClickHouse health, and call mutating Bull Board endpoints such as add, retry and clean. Exposure is deployment-dependent - the default docker-compose.template.yml does not publish the worker port, but the shipped Coolify template assigns SERVICE_FQDN_OPBULLBOARD to the worker and thereby publishes the UI on a public hostname, and the reporter's test instance bound the port on all interfaces. The vendor advisory includes PoC requests demonstrating HTTP 200 on GET / and GET /api/queues with no 401, but a crafted privileged job add was not demonstrated; EPSS is 0.27% (19th percentile) and there is no CISA KEV entry, and the vendor fixed the issue in 3.0.0.
RemediationAI
Upgrade to OpenPanel 3.0.0, which is the vendor-released patch (per the EUVD range 0 <3.0.0 and the upstream commits referenced in GHSA-r627-6vrh-65p9); the fix gates the queue UI behind a dashboard session under /bullboard and adds optional HTTP Basic operator credentials via ADMIN_USERNAME and ADMIN_PASSWORD, which must be set as a pair or the application fails at startup with a partial-configuration error. Where an immediate upgrade is not possible, set DISABLE_BULLBOARD=1 (or 'true') on the worker to remove the router entirely, accepting the loss of queue monitoring visibility, and remove SERVICE_FQDN_OPBULLBOARD from the Coolify template or stop publishing WORKER_PORT to the host; bind the worker HTTP port to loopback and place an authenticated proxy in front of it if the dashboard must remain reachable, noting that any proxy must itself enforce authentication because the worker does not. If the UI must stay up for operators during the transition, run Bull Board in readOnlyMode:true so add/retry/clean calls are refused, understanding that queue inventory, metrics and datastore health remain readable. Verify the fix by confirming that GET /api/queues without credentials returns 401 or 404 and that an authenticated request still lists queues; the vendor advisory at https://github.com/Openpanel-dev/openpanel/security/advisories/GHSA-r627-6vrh-65p9 and the VulnCheck advisory at https://www.vulncheck.com/advisories/openpanel-before-3.0.0-missing-authentication-on-worker-bull-board document the exposure and patched behavior.
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
OpenPanel is a TypeScript/Bun self-hosted analytics platform whose worker process (apps/worker/src/index.ts) mounts Bull Board via an ExpressAdapter at base path '/' on WORKER_PORT (default 3000) whenever DISABLE_BULLBOARD is not set to '1' or 'true' - the documented default is off. No authentication middleware is mounted ahead of that router, so the dashboard, /api/queues, /metrics and /healthcheck are all served anonymously on the same port; Bull Board's own API layer allows add, retry and clean operations against the Redis-backed BullMQ queues (group_events, sessions, cron, notification, import, insights, gsc, cohortCompute). The documented CWE-306 (Missing Authentication for Critical Function) root cause is exactly this: an operator-facing administrative interface is shipped enabled with no gate. The upstream fix closes the gap by making the queue UI a dashboard-session-gated surface under /bullboard and adding an optional second gate of HTTP Basic credentials (ADMIN_USERNAME/ADMIN_PASSWORD) validated by a shared basic-auth helper, with a startup validation that rejects a half-configured credential pair. Development-mode /debug/cron routes are separately gated on NODE_ENV and are not the production issue.
Know when Openpanel 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:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable when proxied (AV:N), trivial GET/POST (AC:L), no auth observed (PR:N), no victim click (UI:N); C:L/I:L for queue reads and add/retry, A:N as queues were not paused.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OpenPanel before 3.0.0 contains a missing authentication vulnerability that allows unauthenticated attackers to access the Bull Board dashboard served on the worker HTTP port. Attackers can query /api/queues and call mutating Bull Board APIs to add, retry, or clean jobs and read queue data, metrics, and datastore health.
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.
Code execution in OpenPanel's js-runtime component lets an authenticated user who holds project write access escape the
An issue in Open Panel v.0.3.4 allows a remote attacker to escalate privileges via the Fix Permissions function. Rated h
An issue in Open Panel v.0.3.4 allows a remote attacker to escalate privileges via the Fix Permissions function. Rated m
Cross Site Request Forgery vulnerability in Open Panel OpenAdmin v.0.3.4 allows a remote attacker to escalate privileges
Server-side request forgery in OpenPanel before 2.3.0 lets unauthenticated remote attackers coerce the panel server into
Unauthenticated ClickHouse SQL injection in OpenPanel before 3.0.0 lets remote attackers read other tenants' analytics d
Sandbox escape in OpenPanel's JavaScript webhook-template runtime (packages/js-runtime) allows an authenticated project
Authenticated remote code execution in OpenPanel before 2.3.0 allows any project member with read access to escape the m
Unauthenticated information disclosure in OpenPanel (openpanel-dev/openpanel) exposes argon2id password hashes and full
Unauthenticated SSRF in OpenPanel before 2.3.0 exposes two utility endpoints - /misc/favicon and /misc/og - that blindly
Cross-tenant data exposure in OpenPanel before 3.0.0 lets any authenticated user read other projects' profiles, events a
Read-level project members in OpenPanel before 3.0.0 can retrieve plaintext integration secrets - Slack bot tokens, inco
EUVD-2026-110524
GHSA-gh2r-9hfj-2qvw
NVD
CVE.org
EPSS
Exploit-DB