Mittel

Saltcorn Server Stored Cross-Site Scripting (XSS) in event logs page

  • Veröffentlicht: 07.10.2024
  • Aktualisiert: 11.10.2026 10:22

Summary

Event log data is not properly sanitized leading to stored Cross-Site Scripting (XSS) vulnerability.

Details

js
router.get(
  "/:id",
  isAdmin,
  error_catcher(async (req, res) => {
    const { id } = req.params;
    const ev = await EventLog.findOneWithUser(id);
    send_events_page({
      [...]
      contents: {
        type: "card",
        contents:
          [...]
          ) +
          div(
            { class: "eventpayload" },
            ev.payload ? pre(JSON.stringify(ev.payload, null, 2)) : "" //<---
          ),
      },
    });
  })

PoC

The following PoC demonstrates how a non-admin user with permission to read/write on a table can inject malicious javascript code that will be executed in the event log admin panel if event logs are enabled.

To demonstrate this issue, we need to prepare some components. The following steps should be executed with an admin user.

  1. create a table with one column of type string set read/write permission to staff users (just as an example)
  • visit http://localhost:3000/table/new
  • create a table with Table name my_table_xss and click Create
  • click Add field to add a field with Label called payload of type String and click Next >>
  • leave default values for Attributes and click Next >> - it should redirect to http://localhost:3000/table/<table-number>
  • under Edit table properties, set Minimum role to read and Minimum role to write to staff
  1. create an edit view so that staff users can insert more data
  • visit http://localhost:3000/viewedit anc click Create View
  • set the following values:
    • View name: my_xss_view
    • View pattern: Edit
    • Table: my_table_xss
    • Minimum role: staff
  • click Configure >>
  • on page http://localhost:3000/viewedit/config/my_xss_view click Next >> and then Finish >>
  • you should see a message View my_xss_view saved
  1. edit the site structure to add the View just created so that staff users can access it
  • visit http://localhost:3000/menu
  • set the following values:
    • Type: View
    • View: my_xss_view [Edit]
    • Text label: view
    • Minimum role: staff
  • click Add
  1. create an event that will log when data is inserted in the my_table_xss table create at step 1
  • visit http://localhost:3000/eventlog/settings
  • under Which events should be logged? select:
    • [X] Insert
    • [X] Insert my_table_xss

Login with a user with staff role (you can do the same steps also with an admin user)

  • visit http://localhost:3000/view/my_xss_view
  • in the payload field insert "<svg/onload=alert(`xss`)> and click Save

With an admin user inspect the log entry generated by the above action:

  • visit http://localhost:3000/eventlog
  • click on the event log generated (http://localhost:3000/eventlog/<event-number>)
  • an alert will appear

Impact

Stored Cross-Site Scripting (XSS)

Recommended Mitigation

Sanitize the user input before building HTML elements

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
npm-Paket @saltcorn/server < 1.0.0-beta.16 1.0.0-beta.16

Verweise

CVSS-Wert 6.1/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Schwäche (CWE)
CWE-79
Plattform
npm
Paket
@saltcorn/server
Veröffentlicht
07.10.2024
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-pf56-h9qf-rxq4 - CC BY 4.0

Schwachstellenhistorie: @saltcorn/server

Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (9) im Archiv
Einträge insgesamt
9
Erste → letzte
10.2024 04.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 2
  • Hoch 3
  • Mittel 4

Veröffentlichungen pro Jahr

  1. 2024: 5
  2. 2025: 0
  3. 2026: 4
Schweregrad:
  1. Kritisch · 9.9 CVE-2026-41478 < 1.4.6, >= 1.5.0-beta.0, < 1.5.6, >= 1.6.0-alpha.0, < 1.6.0-beta.5 1.4.6, 1.5.6, 1.6.0-beta.5
  2. Hoch · 8.2 CVE-2026-40163 < 1.4.5, >= 1.5.0-beta.0, < 1.5.5, >= 1.6.0-alpha.0, < 1.6.0-beta.4 1.4.5, 1.5.5, 1.6.0-beta.4
  3. Kritisch · 9.6 ghsa-cr3w-cw5w-h3fj >= 1.1.1, < 1.5.0-beta.19 1.5.0-beta.19
  4. Saltcorn Server Stored Cross-Site Scripting (XSS) in event logs page dieser Eintrag
    Mittel · 6.1 ghsa-pf56-h9qf-rxq4 < 1.0.0-beta.16 1.0.0-beta.16

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.