# CVE-2026-105987: Stored XSS in KGS Software tia Viewer

Status: published. Published: 2026-10-27. Updated: 2026-11-04.

KGS Software tia Viewer is vulnerable to Stored XSS via the annotation API. Due to the lack of input validation, an authenticated attacker can inject arbitrary JavaScript payload into a stickynote annotation. When any user opens the document, the viewer renders the annotation and the browser executes the payload. This may lead to compromising the user's session.
This issue has been fixed in version 1.2.8.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- KGS Software / tia Viewer: ≥ 0; < 1.2.8 (affected, semver). Source: CNA: CERT-PL

## Severity and prioritization

- CVSS 4.0: 5.1 (medium); CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N; source: CNA: CERT-PL

- CISA KEV: No listing in collected sources

- EPSS: 0.24% as of 2026-11-04; percentile 15.12%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-79

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://cert.pl/en/posts/2026/10/CVE-2026-105987 (CNA: CERT-PL; third-party-advisory)

- https://www.kgs-software.com/en/products/tia-viewer (CNA: CERT-PL; product)

## Provenance

- CNA: CERT-PL: https://www.cve.org/CVERecord?id=CVE-2026-105987; retrieved 2026-11-04; source updated 2026-11-04

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-105987; retrieved 2026-11-04; source updated Not reported

Revision: 451b881dcdbb930f55a291caaa59afc08637e396722b97ed00848e103bc4b5f1

Canonical: https://y2.dev/cve/CVE-2026-105987

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.