BomboBombone.exe
ARCHITECTURE:x86-64
BACK
.WEB.XSSMediaWiki / XSS
25 Sept 2026 · 3 min
MediaWiki / XSS · 25 Sept 2026

CVE-2026-96874: Stored XSS in Cargo Drilldown tab names

Cargo rendered a stored Drilldown tab name as raw HTML.

POST VIEWTEXT / UTF-8
ADDRESS MARKDOWN BYTES

Cargo stored Drilldown tab names declared in a template, then emitted each name as raw HTML. An editor with ordinary template-editing access could store an event-bearing element in a tab name; anyone opening the affected public Drilldown page would trigger it.

Technical details

Cargo parsed _drilldownTabs metadata without applying the strict identifier checks used for other Cargo names. The value was serialized with the page’s Cargo metadata and later passed to Html::rawElement() as the body of a tab link.

Cargo’s default permissions allow anonymous users to run public Cargo queries. The attacker needed permission to edit a Cargo-declaring template, but the victim did not need an account. Cargo versions through 3.9.4 were affected.

Reproduction

  1. Edit a Cargo-declaring template using an ordinary registered account.
  2. Add an event-bearing SVG element as a Drilldown tab name.
  3. Visit the public Special:Drilldown page for that table without signing in.
  4. The browser receives the element as markup and runs its event handler.

Impact

This was stored cross-site scripting. A malicious template editor could run JavaScript in the wiki origin for anonymous visitors and privileged users who opened the affected Drilldown page.

References

1539 UTF-8 BYTES .WEB.XSS · ADDRESSES ARE UTF-8 BYTE OFFSETS

Resize column

Choose a width with the slider or the narrower and wider buttons.