---
id: CVE-2026-48944
title: >-
  The K2 frontend article-save handler accepts an `attachment[N][existing]` POST
  field that is concatenated with `JPATH_SITE/` and passed to `JFile::copy()`
summary: >-
  The K2 frontend article-save handler accepts an `attachment[N][existing]` POST
  field that is concatenated with `JPATH_SITE/` and passed to `JFile::copy()`.
  `JPath::clean` does NOT strip `..`, and there is no allow-list of source
  paths. A…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-22
published: '2026-06-25'
updated: '2026-06-28'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-48944'
references:
  - url: 'https://www.getk2.org/'
    label: security@joomla.org
tags:
  - nvd
epss: 0.00443
epssPercentile: 0.37928
ingestedAt: '2026-06-29T13:42:12.011Z'
---

## Overview

The K2 frontend article-save handler accepts an `attachment[N][existing]` POST field that is concatenated with `JPATH_SITE/` and passed to `JFile::copy()`. `JPath::clean` does NOT strip `..`, and there is no allow-list of source paths. An Author can therefore copy `configuration.php` (or any other file readable by the web user — including `../../../etc/passwd`) into `/media/k2/attachments/`, then retrieve the contents via the K2 attachment-download endpoint.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
