Critical

Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') in AttachmentSelector.xml

  • Disclosed: 21.11.2022
  • Updated: 11.10.2026 11:21

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}}.png as 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.WebHome on the page
  • Insert an attachmentSelector macro 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 an attachmentSelector macro declaration.
  • Display the page
  • Use the attachment picker to select an image
  • Hello from groovy is 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:

Workarounds

No known workaround.

References

For more information

If you have any questions or comments about this advisory:

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Java / Kotlin (Maven) org.xwiki.platform:xwiki-platform-attachment-ui >= 5.0-milestone-1, < 13.10.7, >= 14.0.0, < 14.4.2 13.10.7, 14.4.2

References

CVSS score 9.9/10
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Weakness (CWE)
CWE-95
Platform
Java / Kotlin (Maven)
Package
org.xwiki.platform:xwiki-platform-attachment-ui
Disclosed
21.11.2022
Updated
11.10.2026 11:21

Sources and licenses

OSV / GitHub Advisory Database - GHSA-9hqh-fmhg-vq2j - CC BY 4.0

Vulnerability history: org.xwiki.platform:xwiki-platform-attachment-ui

All published vulnerabilities of this package (Java / Kotlin (Maven)), newest first. Shows whether this is a one-off slip or a package that needs watching.

Total entries
4
First → latest
09.2022 04.2023
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 2
  • High 2

Disclosures per year

  1. 2022: 2
  2. 2023: 2
  3. 2024: 0
  4. 2025: 0
  5. 2026: 0
  1. High · 8.8 CVE-2023-29519 >= 3.0-rc-1, < 13.10.11, >= 14.0-rc-1, < 14.4.8, >= 14.5, < 14.10.2 13.10.11, 14.4.8, 14.10.2
  2. Critical · 9.9 CVE-2023-29516 >= 2.0-rc-2, < 13.10.11, >= 14.0-rc-1, < 14.4.8, >= 14.5, < 14.10.1 13.10.11, 14.4.8, 14.10.1
  3. Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') in AttachmentSelector.xml this entry
    Critical · 9.9 CVE-2022-41928 >= 5.0-milestone-1, < 13.10.7, >= 14.0.0, < 14.4.2 13.10.7, 14.4.2
  4. High · 8.9 CVE-2022-36097 >= 14.0-rc-1, < 14.4-rc-1 14.4-rc-1

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.