GHSA-8423-W5WX-H2R6
Vulnerability from github – Published: 2026-02-19 20:44 – Updated: 2026-02-23 22:27Impact
The hot spot attributes configuration property allowed any attribute to be set, including HTML event handler attributes, allowing for potential XSS attacks. This affects websites hosting the standalone viewer HTML file and any other use of untrusted JSON config files (bypassing the protections of the escapeHTML parameter). As certain events fire without any additional user interaction, visiting a standalone viewer URL that points to a malicious config file—without additional user interaction—is sufficient to trigger the vulnerability and execute arbitrary JavaScript code, which can, for example, replace the contents of the page with arbitrary content and make it appear to be hosted by the website hosting the standalone viewer HTML file.
Patches
This has been fixed both in v2.5.7 and in the current development branch.
Workarounds
Setting the Content-Security-Policy header to script-src-attr 'none' will block execution of inline event handlers, mitigating this vulnerability. Don't host pannellum.htm on a domain that shares cookies with user authentication to mitigate XSS risk.
Acknowledgments
Reported both by luminary (@lumin9ry), Visvge (@Sicclord1 / @Visvge), and sutol (@0x5a6163 / @SUT0L) and by another researcher who wishes not to be named at this time.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "pannellum"
},
"ranges": [
{
"events": [
{
"introduced": "2.5.0"
},
{
"fixed": "2.5.7"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-27210"
],
"database_specific": {
"cwe_ids": [
"CWE-79"
],
"github_reviewed": true,
"github_reviewed_at": "2026-02-19T20:44:48Z",
"nvd_published_at": "2026-02-21T06:17:01Z",
"severity": "MODERATE"
},
"details": "### Impact\nThe hot spot `attributes` configuration property allowed any attribute to be set, including HTML event handler attributes, allowing for potential XSS attacks. This affects websites hosting the standalone viewer HTML file and any other use of untrusted JSON config files (bypassing the protections of the `escapeHTML` parameter). As certain events fire without any additional user interaction, visiting a standalone viewer URL that points to a malicious config file\u0026mdash;without additional user interaction\u0026mdash;is sufficient to trigger the vulnerability and execute arbitrary JavaScript code, which can, for example, replace the contents of the page with arbitrary content and make it appear to be hosted by the website hosting the standalone viewer HTML file.\n\n### Patches\nThis has been fixed both in v2.5.7 and in the current development branch.\n\n### Workarounds\nSetting the `Content-Security-Policy` header to `script-src-attr \u0027none\u0027` will block execution of inline event handlers, mitigating this vulnerability. Don\u0027t host `pannellum.htm` on a domain that shares cookies with user authentication to mitigate XSS risk.\n\n### Acknowledgments\n\nReported both by luminary (@lumin9ry), Visvge (@Sicclord1 / @Visvge), and sutol (@0x5a6163 / @SUT0L) and by another researcher who wishes not to be named at this time.",
"id": "GHSA-8423-w5wx-h2r6",
"modified": "2026-02-23T22:27:55Z",
"published": "2026-02-19T20:44:48Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/mpetroff/pannellum/security/advisories/GHSA-8423-w5wx-h2r6"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-27210"
},
{
"type": "WEB",
"url": "https://github.com/mpetroff/pannellum/commit/9391ef8da6a6a98c6a9f8c97f101adb900523681"
},
{
"type": "PACKAGE",
"url": "https://github.com/mpetroff/pannellum"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N",
"type": "CVSS_V4"
}
],
"summary": "Pannellum has a XSS vulnerability in hot spot attributes"
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.