Skip to main content

Bagisto CVE-2025-62415

MEDIUM
Basic XSS (CWE-80)
2025-10-16 security-advisories@github.com
4.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as privileged admin/editor
  2. Delivery
    Upload JS-laden HTML renamed as .png
  3. Exploit
    Backend converts file back to .html
  4. Execution
    Victim admin opens stored file
  5. Persist
    Script runs in victim session
  6. Impact
    Session hijack or privilege escalation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization HTML tag escaping
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 an authenticated account with upload/content privileges in the Bagisto admin panel (PR:H) - specifically access to the TinyMCE image-upload feature used for rich content. The core technical condition is the backend's content-sniffing behavior: a file uploaded with a .png extension whose contents are detected as HTML/JavaScript is automatically re-saved with a .html extension, defeating the HTML-upload block. Realistic exploitation is further limited by the need for a second user (another admin or editor) to actively open/view the stored file (UI:R) for the payload to fire; it does not execute automatically. There is no unauthenticated or default-configuration path, which is the primary factor reducing real-world risk.

Impact

This is a stored/HTML-injection XSS (CWE-80) in Bagisto 2.3.7's TinyMCE image-upload feature, and the aggregate signals point to a genuine but low-to-moderate priority issue rather than an urgent one. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N, base 4.8 Medium) shows the defining constraint: PR:H means the attacker must already hold a high-privilege (admin/editor) account to upload the file, and UI:R means a victim must actively view the malicious content, so this is not a drive-by remote compromise. The scope change (S:C) and the GHSA impact note (targeting other admins/editors for session hijacking, unauthorized actions, or privilege escalation) are what give it real teeth: a lower-trust content editor could escalate against a higher-trust admin. Exploitation maturity is mixed - a working POC is publicly available (publicly available exploit code exists), which raises the practical likelihood of use, but the EPSS score is low at 0.28% (19th percentile) and the CVE is NOT in CISA KEV (no public exploit identified as actively exploited). The low EPSS is consistent with the high privilege prerequisite: this requires insider/compromised-account access, so widespread automated exploitation is unlikely. No signals conflict materially; the authenticated, user-interaction-gated nature is corroborated across the CVSS vector and the vendor advisory text.

Exploit ScenarioDerived

An attacker who controls a Bagisto admin or content-editor account (e.g., a lower-privileged editor or a compromised account) creates an HTML file containing embedded JavaScript, renames it with a .png extension, and uploads it through TinyMCE; the backend detects the HTML/JS content and converts the file back to .html. When another admin or editor later opens that file in their browser, the script executes in their authenticated session, enabling session hijacking or actions on their behalf. A public POC demonstrating the .png-to-.html conversion bypass exists.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 19, 2026

Stored cross-site scripting in Bagisto 2.3.7's TinyMCE image-upload feature allows a highly privileged admin-panel user to upload a file named with a .png extension whose contents are HTML/JavaScript; the backend's content sniffing then re-saves it as .html, so the script executes in the browser of any admin or editor who opens it, enabling session hijacking or unauthorized actions against those privileged accounts. Exploitation requires an authenticated account with upload/content privileges (PR:H) plus a victim who actively views the file (UI:R), so it is not remotely triggerable against a default, unattended installation; publicly available exploit code exists, EPSS is 0.28% (19th percentile), and there is no CISA KEV listing. The issue is fixed in Bagisto 2.3.8.

RemediationAI

Vendor-released patch: upgrade to Bagisto 2.3.8, which contains the upstream fix commit 7b6b1dd639a14e7053bb82ef2f971c1f533fdfab (https://github.com/bagisto/bagisto/commit/7b6b1dd639a14e7053bb82ef2f971c1f533fdfab), as documented in advisory GHSA-67px-r26w-598x (https://github.com/bagisto/bagisto/security/advisories/GHSA-67px-r26w-598x). If immediate upgrade is not possible, the highest-value compensating control is to change how stored uploads are served so that anything not an image is never rendered as HTML - serve the upload directory with X-Content-Type-Options: nosniff and Content-Disposition: attachment, or from a separate cookieless domain, which neutralizes the auto-renamed .html payload at the cost of breaking inline preview of legitimate non-image assets. Alternatively, disable or restrict the TinyMCE image-upload endpoint to a small set of trusted administrators and re-validate file magic bytes against an image allowlist; the trade-off is reduced editorial workflow flexibility. Adding a restrictive Content-Security-Policy to the admin panel (no inline/third-party script) also blunts payload execution but requires testing against TinyMCE and other admin JavaScript. Because exploitation requires an existing privileged account, auditing admin/editor accounts for unexpected .html files in upload directories and reviewing recent content uploads for indicators of compromise is advisable alongside patching.

Affected Packages

composer bagisto/bagisto fix: 2.3.8

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in composer

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Bagisto is an open-source Laravel-based eCommerce platform (packaged as composer/bagisto/bagisto, tracked in CPE as cpe:2.3:a:webkul:bagisto:2.3.7). Its rich-content editor is TinyMCE, which routes image uploads through a backend handler that is supposed to reject HTML files. The root cause is CWE-80 (improper neutralization of script-related HTML tags in a web page - basic XSS): instead of rejecting or sanitizing a file whose declared extension is .png but whose bytes sniff as HTML or JavaScript, the handler 'corrects' the extension to .html and stores the attacker-controlled markup in a web-reachable location. Because the file is then served and rendered as HTML in the Bagisto origin, embedded JavaScript runs in the session context of any privileged user who opens the link - a stored/persistent XSS pattern rather than a reflected one. The CVSS scope change (S:C) reflects that the payload executes against other admin/editor accounts rather than the uploading account, and the PR:H/UI:R metrics reflect that the attacker must already hold content-upload rights and must persuade a second privileged user to view the file. No underlying framework flaw is implicated; the defect is the content-sniffing decision to serve attacker-supplied markup as active HTML.

Know when Bagisto 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

NVD PRIMARY 4.8 MEDIUM
AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 4.8 MEDIUM

Upload requires a high-privilege account (PR:H) and a victim must view the file (UI:R); script runs in another user's session (S:C) with limited C/I impact and no availability effect.

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionNVD

Bagisto is an open source laravel eCommerce platform. In Bagisto v2.3.7, the TinyMCE image upload functionality allows an attacker with sufficient privileges (e.g. admin) to upload a crafted HTML file containing embedded JavaScript. When viewed, the malicious code executes in the context of the admin/user’s browser. This vulnerability is fixed in 2.3.8.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche open-source Laravel eCommerce platform, limited enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Affected Products (CPE)NVD

cpe:2.3:a:webkul:bagisto:2.3.7:*:*:*:*:*:*:*
CVE-2026-21448 CRITICAL POC
9.8 Jan 02

Bagisto eCommerce platform before 2.3.10 is vulnerable to server-side template injection (SSTI) through customer address

CVE-2026-21446 CRITICAL POC
9.8 Jan 02

Bagisto eCommerce platform (2.3 branch before 2.3.10) leaves installation API routes active after setup, allowing unauth

CVE-2026-21449 HIGH POC
8.8 Jan 02

Bagisto eCommerce platform versions before 2.3.10 suffer from server-side template injection through user-controllable f

CVE-2023-33570 HIGH POC
8.8 Jun 28

Bagisto v1.5.1 is vulnerable to Server-Side Template Injection (SSTI). Rated high severity (CVSS 8.8), this vulnerabilit

CVE-2019-16403 HIGH POC
8.8 Sep 18

In Webkul Bagisto before 0.1.5, the functionalities for customers to change their own values (such as address, review, o

CVE-2019-14933 HIGH POC
8.8 Aug 11

Bagisto 0.1.5 allows CSRF under /admin URIs. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,

CVE-2026-9506 HIGH POC
8.7 Jun 08

Arbitrary file read in Bagisto v2.4.1 allows unauthenticated remote attackers to retrieve sensitive files outside the we

CVE-2026-21451 HIGH POC
8.4 Jan 02

Stored XSS in Bagisto's CMS page editor allows authenticated attackers to bypass input sanitization by crafting maliciou

CVE-2026-21447 HIGH POC
7.1 Jan 02

Bagisto is an open source laravel eCommerce platform. [CVSS 7.1 HIGH]

CVE-2025-62417 HIGH POC
7.1 Oct 16

CSV formula injection in Bagisto through 2.3.7 allows a user who can create or edit product data to store spreadsheet fo

CVE-2025-62416 MEDIUM POC
6.8 Oct 16

Server-side template injection in Bagisto 2.3.7 lets an authenticated backend user with product-creation privileges inje

CVE-2024-27499 MEDIUM POC
6.5 Mar 01

Bagisto v1.5.1 is vulnerable for Cross site scripting(XSS) via png file upload vulnerability in product review option. R

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