Skip to main content

Remark42 EUVDEUVD-2026-37511

| CVE-2026-48788 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-06-16 GitHub_M GHSA-4c8j-mgm4-qqvp
8.2
CVSS 3.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.2 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
vuln.today AI
8.2 HIGH

Network-reachable proxy endpoint, no auth needed (PR:N), one victim click (UI:R); JS executes in Remark42 origin so scope changes and confidentiality is high, with limited integrity and no availability impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

3
Patch available
Jun 26, 2026 - 21:02 EUVD
Source Code Evidence Fetched
Jun 17, 2026 - 00:11 vuln.today
Analysis Generated
Jun 17, 2026 - 00:11 vuln.today

DescriptionCVE.org

Remark42 is a self-hosted comment engine for blogs, articles, or any other place where readers can add comments. Versions 1.6.0 through 1.15.0 contain a Cross-Site Scripting (XSS) vulnerability exploitable through content-type spoofing. The Remark42 image proxy fetches an arbitrary remote URL and re-serves the response from Remark42's own origin. During the download phase, the proxy determines whether the resource is an image by inspecting only the Content-Type header advertised by the remote server, never examining the actual bytes; during the serving phase, it instead derives the response Content-Type by sniffing those bytes with http.DetectContentType. An attacker can exploit this inconsistency by hosting a URL that advertises Content-Type: image/png while returning an HTML/JavaScript body: the download check accepts it as an image, the serving path sniffs the body and emits Content-Type: text/html, and the browser renders the attacker-controlled HTML/JavaScript as a document within Remark42's origin. Exploitation requires no Remark42 account on the target instance; the attacker only needs to host the malicious upstream URL and deliver the proxy link to a victim by any means, such as email, direct message, or a link on another website. This issue has been fixed in version 1.16.0.

AnalysisAI

Stored/reflected XSS in Remark42 self-hosted comment engine versions 1.6.0 through 1.15.0 allows unauthenticated remote attackers to execute arbitrary JavaScript in the context of a Remark42 origin by abusing a Content-Type inconsistency in the image proxy. The proxy trusts the upstream Content-Type header during the download check but re-sniffs bytes when serving, letting an HTML/JS payload advertised as image/png be re-served as text/html from the victim instance's own origin. No public exploit identified at time of analysis; fixed in 1.16.0.

Technical ContextAI

Remark42 is a Go-based self-hosted commenting platform (cpe:2.3:a:umputun:remark42) that ships an image proxy intended to rehost remote images on the Remark42 origin to avoid mixed-content and tracking issues. The root cause is CWE-79 (Cross-Site Scripting) driven by a Content-Type validation/serving mismatch: the download gate relies on the remote server's advertised Content-Type header, while the serving handler uses Go's http.DetectContentType to sniff actual bytes. Because the served response carries the Remark42 origin, the browser executes any HTML/JavaScript returned by the upstream URL within that trust boundary. The upstream patch (commit 78d6de6) does not change the proxy decisioning itself but adds defense-in-depth headers - most importantly X-Content-Type-Options: nosniff (plus Referrer-Policy) - to prevent the browser from MIME-sniffing the proxied response away from a non-HTML declared type.

RemediationAI

Vendor-released patch: upgrade to Remark42 v1.16.0 or later, which adds X-Content-Type-Options: nosniff and Referrer-Policy: strict-origin-when-cross-origin response headers via the securityHeadersMiddleware (commit 78d6de6bce1e961f023969da3ec8a00dd80c9ae8); see https://github.com/umputun/remark42/releases/tag/v1.16.0 and the advisory at https://github.com/umputun/remark42/security/advisories/GHSA-4c8j-mgm4-qqvp. If immediate upgrade is not possible, disable the image proxy in the Remark42 configuration (IMAGE_PROXY_HTTP2HTTPS / IMAGE_PROXY_CACHE_EXTERNAL) - the trade-off is that http-image URLs embedded in comments will be loaded directly by the browser and may break under mixed-content rules or leak referrer data. As a reverse-proxy compensating control, set X-Content-Type-Options: nosniff on all responses from the Remark42 origin at the fronting nginx/Caddy/Cloudflare layer, which neutralizes the MIME-sniff escalation without functional regression; additionally, tightening the Content-Security-Policy script-src to block inline script on the Remark42 origin reduces the blast radius if the proxy is re-enabled later.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

Share

EUVD-2026-37511 vulnerability details – vuln.today

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