Miggo Logo

CVE-2025-46554:
XWiki missing authorization when accessing the wiki level attachments list and metadata via REST API

5.3

CVSS Score
3.1

Basic Information

EPSS Score
0.15749%
Published
4/30/2025
Updated
5/5/2025
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.xwiki.platform:xwiki-platform-rest-servermaven>= 1.8.1, < 14.10.2214.10.22
org.xwiki.platform:xwiki-platform-rest-servermaven>= 15.0-rc-1, < 15.10.1215.10.12
org.xwiki.platform:xwiki-platform-rest-servermaven>= 16.0.0-rc-1, < 16.4.316.4.3
org.xwiki.platform:xwiki-platform-rest-servermaven>= 16.5.0-rc-1, < 16.7.016.7.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability described is a missing authorization check when listing attachments via REST API endpoints. The primary commit 'a43e933ddeda17dad1772396e1757998260e9342' shows that the getAttachments method in org.xwiki.rest.internal.resources.BaseAttachmentsResource was modified to add an explicit authorization check (.filter(a -> authorization.hasAccess(Right.VIEW, a.getReference()))). This indicates that, prior to this patch, this method did not correctly filter attachments based on user rights, which is the core of the vulnerability.

The getAttachments methods in the concrete resource implementation classes (AttachmentsResourceImpl, SpaceAttachmentsResourceImpl, and WikiAttachmentsResourceImpl) are the public-facing REST API handlers. These methods call super.getAttachments(...), which refers to the method in BaseAttachmentsResource. Therefore, these subclass methods were vulnerable because they utilized the flawed BaseAttachmentsResource.getAttachments method. The patch to the base class effectively remediated the vulnerability for all these public endpoints. These functions would appear in a runtime profile when the vulnerability is triggered, as they are part of the call chain processing the request and returning the unfiltered attachment list.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t *nyon* **n ****ss t** m*t***t* o* *ny *tt***m*nt in t** wiki usin* t** wiki *tt***m*nt R*ST *n*point. It's not *ilt*rin* t** r*sult **p*n*in* on *urr*nt us*r ri**ts, * not *ut**nti**t** us*r *oul* *xploit t*is *v*n in * tot*lly priv*t* wi

Reasoning

T** vuln*r**ility **s*ri*** is * missin* *ut*oriz*tion ****k w**n listin* *tt***m*nts vi* R*ST *PI *n*points. T** prim*ry *ommit '****************************************' s*ows t**t t** `**t*tt***m*nts` m*t*o* in `or*.xwiki.r*st.int*rn*l.r*sour**s.*