Miggo Logo

CVE-2023-27592: Stored XSS in Miniflux when opening a broken image due to unescaped ServerError in proxy handler

4.8

CVSS Score
3.1

Basic Information

EPSS Score
0.57526%
Published
4/2/2025
Updated
4/2/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
miniflux.app/v2go>= 2.0.25, < 2.0.432.0.43

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability chain involves two key functions:

  1. mediaProxy handler in ui/proxy.go triggers XSS by passing user-controlled error messages from failed image fetches to ServerError
  2. ServerError in http/response/html/html.go directly outputs unescaped error content without security headers, enabling script execution Patch changes show:
  • mediaProxy stopped using ServerError for error responses
  • ServerError gained CSP headers to mitigate XSS Runtime detection would see both functions in call stack when processing malicious image requests

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t Sin** [v*.*.**](*ttps://*it*u*.*om/mini*lux/v*/r*l**s*s/t**/*.*.**), Mini*lux will *utom*ti**lly [proxy](*ttps://mini*lux.*pp/*o*s/*on*i*ur*tion.*tml#proxy-im***s) im***s s*rv** ov*r *TTP to pr*v*nt mix** *ont*nt *rrors. W**n *n out*oun*

Reasoning

T** vuln*r**ility ***in involv*s two k*y *un*tions: *. m**i*Proxy **n*l*r in ui/proxy.*o tri***rs XSS *y p*ssin* us*r-*ontroll** *rror m*ss***s *rom **il** im*** **t***s to S*rv*r*rror *. S*rv*r*rror in *ttp/r*spons*/*tml/*tml.*o *ir**tly outputs un*