Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') in AttachmentSelector.xmlGHSA-9hqh-fmhg-vq2j
CRITICALGHSA-9hqh-fmhg-vq2j is a critical-severity (CVSS 9.9) CWE-95 vulnerability in org.xwiki.platform:xwiki-platform-attachment-ui. 2 public exploit or proof-of-concept references are indexed, so weaponization risk is real. A fix is available for org.xwiki.platform:xwiki-platform-attachment-ui — see the affected versions and patch details below.
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA’s SSVC triage for GHSA-9hqh-fmhg-vq2j.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
org.xwiki.platform:xwiki-platform-attachment-ui☕org.xwiki.platform:xwiki-platform-attachment-uiReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Impact
Any user with the right to edit his personal page can follow one of the scenario below:
Scenario 1:
- Log in as a simple user with just edit rights on the user profile
- Go to the user's profile
- Upload an attachment in the attachment tab at the bottom of the page (any image is fine)
- Click on "rename" in the attachment list and enter
{{async async="true" cached="false" context="doc.reference"}}{{groovy}}println("Hello from groovy!"){{/groovy}}{{/async}}.pngas new attachment name and submit the rename - Go back to the user profile
- Click on the edit icon on the user avatar
Hello from groovy!is displayed as the title of the attachment
Scenario 2:
- Log in as a simple user with just edit rights on a page
- Create a Page
MyPage.WebHome - Create an XClass field of type String named
avatar - Add an XObject of type
MyPage.WebHomeon the page - Insert an
attachmentSelectormacro in the document with the following values:- classname:
MyPage.WebHome - property:
avatar - savemode:
direct - displayImage:
true - width:
]] {{async async="true" cached="false" context="doc.reference"}}{{groovy}}println("Hello from groovy!"){{/groovy}}{{/async}}. You'll find below a snippet of anattachmentSelectormacro declaration.
- classname:
- Display the page
- Use the attachment picker to select an image
Hello from groovyis displayed aside the image
Example of an attachmentSelector macro declaration:
`{{attachmentSelector classname="MyPage.WebHome" property="avatar" savemode="direct" displayImage="true" width="]] {{async async=~"true~" cached=~"false~" context=~"doc.reference~"~}~}{{groovy~}~}println(~"Hello from groovy!~"){{/groovy~}~}{{/async~}~}"/}}`
Note: The issue can also be reproduced by inserting the dangerous payload in the height or alt macro properties.
Patches
The issue can be fixed on a running wiki by updating XWiki.AttachmentSelector with the versions below:
- 14.5-rc-1+: https://github.com/xwiki/xwiki-platform/commit/eb15147adf94bddb92626f862c1710d45bcd64a7#diff-e1513599ab698991f6cbba55d38f3f464432ced8d137a668b1f7618c7e747e23
- 14.4.2+: https://github.com/xwiki/xwiki-platform/commit/c02f8eb1f3c953d124f2c097021536f8bc00fa8d#diff-e1513599ab698991f6cbba55d38f3f464432ced8d137a668b1f7618c7e747e23
- 13.10.7+: https://github.com/xwiki/xwiki-platform/commit/efd0df0468d46149ba68b66660b93f31b6318515#diff-e1513599ab698991f6cbba55d38f3f464432ced8d137a668b1f7618c7e747e23
Workarounds
No known workaround.
References
For more information
If you have any questions or comments about this advisory:
- Open an issue in Jira XWiki.org
- Email us at Security Mailing List
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.xwiki.platform:xwiki-platform-attachment-ui | ≥ 5.0-milestone-1&&< 13.10.7 | 13.10.7org.xwiki.platform:xwiki-platform-attachment-ui:13.10.7 |
| ☕Maven | org.xwiki.platform:xwiki-platform-attachment-ui | ≥ 14.0.0&&< 14.4.2 | 14.4.2org.xwiki.platform:xwiki-platform-attachment-ui:14.4.2 |
Affected Products
xwikixwikiResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.xwiki.platform:xwiki-platform-attachment-ui, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.xwiki.platform:xwiki-platform-attachment-ui to 13.10.7 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-9hqh-fmhg-vq2j is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
Frequently Asked Questions
Is GHSA-9hqh-fmhg-vq2j in your dependencies?
Find it across Maven, including transitive dependencies.