Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv author (post.create/edit)
-
DeliveryStore script/event-handler in LaraBuilder design_json block
-
ExploitAdmin or Superadmin opens builder, preview, or page
-
ExecutionPayload executes in privileged session
-
ImpactSteal cookies/CSRF token, perform admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated account holding the post.create or post.edit permission (per the description and PR:L), which in LaraDashboard includes authors, editors, and membership-module members. The attacker stores script or event-handler markup in a LaraBuilder design_json block (text-editor, HTML, text, or heading type), which v1.4.8 and earlier render raw via {!! ... !!} in the builder preview, admin post view, email-template preview, and rendered public page. Execution additionally requires a victim with higher privilege (administrator or Superadmin) to view that content (UI:P), so it is not a fully automatable unauthenticated attack. Limiting factors: a valid low-privilege authenticated account is needed, the content-authoring feature must be in use, and a privileged user must open the affected view; these apply to default configurations of LaraDashboard rather than a special non-default mode. |
| Impact | This is a genuine but moderate-priority issue, not a drop-everything emergency, and the signals are internally consistent on that point. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N, 5.1 medium) models a stored XSS that requires an authenticated low-privilege account (PR:L) plus a privileged victim to view the content (UI:P), with impact confined to the subsequent system (the admin's browser session: SC:L/SI:L) rather than the vulnerable application itself. The vuln.today decision label is 'this_month', which matches a medium-severity authenticated flaw. There is no CISA KEV entry and no EPSS score in the provided data, so there is no evidence of active or widespread exploitation; note that absence of EPSS/KEV is not itself a risk signal. A detailed PoC is published inside the GHSA advisory. Two signals conflict and should be reconciled before relying on severity: the vendor GHSA advisory rates the same flaw far higher (CVSS 3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N) on the theory that the admin-session XSS chains to full admin/Superadmin takeover, whereas the input 4.0 vector assigns no confidentiality/integrity impact to the vulnerable system and only low subsequent impact - verify which impact model your program uses, because the realistic worst case (session/CSRF theft leading to admin takeover, as the advisory describes) sits closer to the vendor's rating than to 5.1. Net: real priority for any LaraDashboard operator that grants post.create/post.edit to semi-trusted authors, but gated behind authentication and victim interaction. |
| Exploit ScenarioDerived | A low-privilege author or editor account (holding post.create or post.edit) saves a LaraBuilder text-editor, HTML, text, or heading block whose content contains script or event-handler markup such as <img src=x onerror=...>. When an administrator or Superadmin later opens the builder, the preview, or the rendered page, the stored payload executes in their authenticated session, enabling session/CSRF-token theft and privileged actions. A public PoC reference (a bash reproduction script) is included in the GHSA-w878-x2w9-3r6f advisory; it is not verified here as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 02, 2026
Stored cross-site scripting in LaraDashboard 1.4.8 and earlier lets any authenticated account holding the post.create or post.edit permission persist script or event-handler markup inside LaraBuilder design_json blocks (text-editor, HTML, text or heading), which the application then renders unescaped in the builder preview, the admin post view, email-template previews and published pages. Because the payload executes in the browser of a higher-privileged viewer - an administrator or Superadmin opening the content - a low-privilege author can chain the execution with the account's own CSRF-exposed actions toward privilege escalation; exploitation requires a valid low-privilege account and a privileged user action (PR:L/UI:P per the assessed CVSS:3.1 vector AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N), so it is not an unauthenticated or fully automatable attack and is rated moderate priority rather than an emergency. A public proof-of-concept reproduction script is included in the vendor GHSA advisory; it has not been independently verified as working exploit code, and no active exploitation (CISA KEV) has been confirmed. Vendor-released patch: 1.4.9.
RemediationAI
Upgrade to LaraDashboard 1.4.9, the vendor-released fixed version (release https://github.com/laradashboard/laradashboard/releases/tag/v1.4.9, patch commit 5955d725683b1e63af8c38a149211d6151465aed); the release sanitizes LaraBuilder content on save and again on load, so it both blocks new payloads from the builder, REST API, MCP tools and AI actions and neutralizes rows already stored in the database - updating is the complete fix per the vendor. Because payloads are only cleansed on read after the upgrade, no manual database cleanup of design_json is required, but re-reviewing existing posts and email templates after patching is still worthwhile. If the upgrade cannot be applied immediately, the practical compensating control is to restrict the post.create and post.edit permissions to staff who already hold administrative trust (the membership module in particular grants these to lower-trust members) and to disable the custom HTML block and email-template preview while the exposed render paths remain unpatched - noting that this reduces new injection opportunities but leaves already-stored payloads live and does not fix the underlying missing output encoding. The same 1.4.9 release also requires email_template.edit for the MCP send-email tool and hardens social-login email verification, so those advisories (GHSA-rf5h-55h2-jmf8, GHSA-9gg9-jh9p-fw37, GHSA-gjfv-h634-pxpv) are closed by the same upgrade.
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
LaraDashboard is a Laravel/PHP admin dashboard whose LaraBuilder page builder persists block layouts as a design_json column; in 1.4.8 and earlier both Post and EmailTemplate declare that column with a plain 'array' cast, so arbitrary block attributes survive storage. Individual block renderers (Modules/content-builder/blocks/text-editor/render.php lines 99-104 and Modules/content-builder/blocks/html/render.php line 47, the same code path used by the email block) concatenate that stored content into HTML strings without sanitization, and Blade templates echo the result with the unescaped {!! ... !!} syntax - Post::renderContent() around lines 397-415 and show.blade.php:11. This is the classic CWE-79 stored variant: the trust boundary is between a low-privileged content author and the privileged session that renders their content, which is why the scope is changed (S:C) while direct confidentiality/integrity/availability impact on the vulnerable component itself is limited. The 1.4.9 fix introduces an App\Casts\SanitizedDesignJson cast that runs App\Support\Security\RichHtmlSanitizer::sanitizeDesign() on both read and write, plus sanitization in App\Services\Builder\BlockRenderer; sanitizing on write closes every entry point (builder, REST API, MCP tools, AI actions), while sanitizing on read neutralizes rows stored before the fix and prevents the React editor from injecting them via innerHTML/dangerouslySetInnerHTML. The same release also strips script, event handlers, Alpine/Livewire directives and javascript: URLs across all block types, escapes colors/sizes/gaps/CSS reaching style attributes, and tightens MCP email permissions. The trigger for execution is a privileged user opening the affected builder, preview or page view; the underlying resource-injection path is confirmed by the vendor advisory and the published commit diff.
Know when Laradashboard 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:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Authenticated low-priv author stores the payload (PR:L); a privileged victim must view it (UI:R); execution in the victim's browser crosses a trust boundary (S:C) with limited confidentiality/integrity impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
LaraDashboard before 1.4.9 contains a stored cross-site scripting vulnerability that allows authenticated users with post.create or post.edit permission to inject scripts via unsanitized LaraBuilder design_json block content. Attackers can save text-editor, HTML, text or heading blocks containing script or event-handler markup that executes in administrator or Superadmin sessions viewing the builder, preview or page.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Laradashboard
View allImproper privilege management in LaraDashboard before 1.4.8 lets an authenticated Admin-tier user who holds the role.edi
Authentication bypass in Lara Dashboard before 1.3.0 lets unauthenticated attackers log in as any registered user by req
LaraDashboard through 1.4.2 lets any administrator holding the ordinary settings.edit permission - which the default Adm
Information disclosure in LaraDashboard before 1.4.8 allows an authenticated user who holds only the low-privilege setti
Server-side request forgery in Lara Dashboard 0.9.2-1.3.1 allows any authenticated content editor to proxy arbitrary HTT
Unauthenticated attackers can exhaust LaraDashboard's paid email-verification quota through the public forgot-password a
Path traversal in LaraDashboard before 1.4.8 lets unauthenticated remote attackers read arbitrary JSON files from the ap
Race condition in LaraDashboard 1.4.0 through 1.4.7 allows unauthenticated remote attackers to bypass the per-IP daily r
Open redirect in LaraDashboard before 1.4.8 allows remote attackers to steer an authenticated user who holds email-templ
Improper authorization in LaraDashboard 1.4.0 through 1.4.8 lets an authenticated user holding only the read-only email_
EUVD-2026-115223
GHSA-5g7w-8vm6-6hg2
NVD
CVE.org
Exploit-DB