Vik Booking (com_vikbooking) below 1.18.21 - Stored XSS via SVG Check-in Signature, Missing CSRF and Access Checks on Back-end Tasks
Vik Booking before 1.18.21 let the front-end check-in signature task (storesignature) accept a base64 SVG image and write it unsanitised to administrator/components/com_vikbooking/resources/idscans/, a web-accessible folder, so anyone holding a confirmed booking's sid/ts pair (obtainable by making an ordinary public booking) could store an SVG containing script that runs on the site's own origin when the file is opened, including by an administrator reviewing check-in documents. The same release also adds missing CSRF token checks and core.vbo.management/core.vbo.bookings permission checks to several back-end tasks (invoice management and download, check-in document creation, booking creation from the calendar, rate creation), strips HTML from front-end booking form custom-field values, sanitises inquiry field keys, and adds an option to keep guest media files above the web root. Fixed in 1.18.21 (11 Nov 2026). E4J's changelog only says "Various CSRF and capability checks added" and "SVG and images sanitising techniques"; the details here come from mySites.guru diffing the same-day WordPress release (1.8.21) of the same codebase. No CVE; severity is mySites.guru's own assessment. Update to 1.18.21 or later, then enable the new setting to keep guest media above the web root.
Affected versions: < 1.18.21
Full advisory: our disclosure post