Description
299Ko's public contact form (plugin/contact/controllers/ContactController.php, home) sets raw POST field values (name, firstname, email, message) into the page template with no sanitization. The template engine's variable output function (common/Template.php, _show_var) echoes values with no htmlspecialchars call, and the sink template (contact.tpl) outputs these values unescaped into an HTML attribute and a textarea.
Published: 2026-08-05
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

299Ko’s public contact form allows users to submit values such as name, firstname, email and message. The plugin renders these inputs directly into the page template without any form of sanitization, enabling an attacker to inject arbitrary script code that is then reflected in the visitor’s browser. This reflected Cross‑Site Scripting flaw can be used to hijack session cookies or perform other client‑side attacks, and it is classified as a CWE‑79 vulnerability.

Affected Systems

All installations of the 299Ko plugin that include the default public contact form are affected; specific version information is not disclosed. The vulnerability exists wherever the plugin’s ContactController is deployed in its default configuration.

Risk and Exploitability

With a CVSS score of 6.1 the vulnerability is considered of moderate severity. The EPSS score is below 1%, indicating a low probability of exploitation, and it is not listed in CISA’s KEV catalog. An attacker can exploit the flaw remotely over the network by simply submitting the form, making it a high‑risk vulnerability for any attacker capable of delivering a crafted payload to a victim’s browser. The impact largely affects confidentiality and availability of user sessions through token theft.

Generated by OpenCVE AI on August 10, 2026 at 21:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the vendor‑provided patch that sanitizes all input fields before rendering
  • If a patch is unavailable, modify the template engine’s rendering function to encode output with htmlspecialchars() or equivalent before echoing
  • Implement a Content‑Security‑Policy that disallows inline scripts and limits script sources

Generated by OpenCVE AI on August 10, 2026 at 21:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description 299Ko's public contact form (plugin/contact/controllers/ContactController.php, home()) sets raw POST field values (name, firstname, email, message) into the page template with no sanitization. The template engine's variable output function (common/Template.php, _show_var()) echoes values with no htmlspecialchars() call, and the sink template (contact.tpl) outputs these values unescaped into an HTML attribute and a textarea. An unauthenticated attacker can submit a payload such as name="><script>alert(document.domain)</script> to achieve reflected XSS against any visitor who submits or is tricked into auto-submitting the form, including a targeted administrator, enabling session token theft. 299Ko's public contact form (plugin/contact/controllers/ContactController.php, home) sets raw POST field values (name, firstname, email, message) into the page template with no sanitization. The template engine's variable output function (common/Template.php, _show_var) echoes values with no htmlspecialchars call, and the sink template (contact.tpl) outputs these values unescaped into an HTML attribute and a textarea.

Mon, 10 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Title 299Ko: Unauthenticated Reflected XSS in Public Contact Form 299Ko - Unauthenticated Reflected XSS in Public Contact Form

Fri, 07 Aug 2026 11:45:00 +0000

Type Values Removed Values Added
First Time appeared 299ko
299ko 299ko
Vendors & Products 299ko
299ko 299ko

Wed, 05 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 11:15:00 +0000

Type Values Removed Values Added
Description 299Ko's public contact form (plugin/contact/controllers/ContactController.php, home()) sets raw POST field values (name, firstname, email, message) into the page template with no sanitization. The template engine's variable output function (common/Template.php, _show_var()) echoes values with no htmlspecialchars() call, and the sink template (contact.tpl) outputs these values unescaped into an HTML attribute and a textarea. An unauthenticated attacker can submit a payload such as name="><script>alert(document.domain)</script> to achieve reflected XSS against any visitor who submits or is tricked into auto-submitting the form, including a targeted administrator, enabling session token theft.
Title 299Ko: Unauthenticated Reflected XSS in Public Contact Form
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-10T11:46:05.754Z

Reserved: 2026-08-05T10:53:53.177Z

Link: CVE-2026-71249

cve-icon Vulnrichment

Updated: 2026-08-05T13:37:40.752Z

cve-icon NVD

Status : Deferred

Published: 2026-08-05T11:16:27.987

Modified: 2026-08-26T17:13:24.800

Link: CVE-2026-71249

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T21:15:07Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')