---
id: CVE-2026-55746
title: 'Cotonti: Stored Cross-Site Scripting in the Personal File Storage (PFS) module'
summary: 'Cotonti: Stored Cross-Site Scripting in the Personal File Storage (PFS) module'
severity: high
cvss: 7.6
cwe:
  - CWE-79
vendor: cotonti
product: cotonti/cotonti
ecosystem: composer
affected:
  - cotonti/cotonti <= 1.0.0
published: '2026-06-18'
updated: '2026-06-19'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-86hp-hf3j-3m8r'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-55746'
  - url: 'https://github.com/Cotonti/Cotonti'
  - url: >-
      https://github.com/Cotonti/Cotonti/blob/f43f1fc38ba4e02027786dad9dac1435c7c52b30/modules/pfs/inc/pfs.main.php#L396
  - url: 'https://github.com/advisories/GHSA-86hp-hf3j-3m8r'
tags:
  - ghsa
  - composer
epss: 0.00296
epssPercentile: 0.19743
ingestedAt: '2026-06-29T14:31:47.029Z'
---

## Overview

Cotonti 1.0.0 (master branch, commit f43f1fc3) is vulnerable to stored Cross-Site Scripting in the Personal File Storage (PFS) module. A folder title (pff_title) is imported with the 'TXT' filter, which does not strip or encode HTML (the tag check in cot_import is disabled), so an authenticated user can store HTML/JavaScript in a folder title. In modules/pfs/inc/pfs.main.php the title is assigned to the template variable PFF_ROW_TITLE without htmlspecialchars(), and modules/pfs/tpl/pfs.tpl outputs {PFF_ROW_TITLE} unescaped. When the folder listing is viewed (including by other users for public folders), the injected script executes in the victim's browser.

## Affected packages

- `cotonti/cotonti <= 1.0.0`

## Remediation

Refer to the advisory for the patched release.
