Skip to content
Heist/ feed
Back to feed
Critical

Piwigo: Authenticated RCE via File Upload in Logo Upload Feature

Type: advisorySources: OSV

Piwigo is a full featured open source photo gallery application for the web. Prior to 16.4.0, admin/themes_standard_pages.php validates uploaded logo content by MIME type but reuses the attacker-controlled extension from std_pgs_logo when constructing the stored filename. An authenticated administrator can upload image content with a server-executable final extension, causing the file to be placed in the web-accessible logo directory and executed when requested if the web server handles that extension. This can permit arbitrary command execution, data disclosure, modification, persistence, and service disruption. This vulnerability is fixed in 16.4.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-42322
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 06:04 UTC · Revision 1

Source evidence

Piwigo: Authenticated RCE via File Upload in Logo Upload Feature

core-osv · Original source

Published 25 Sept 2026, 15:50 UTC

Piwigo is a full featured open source photo gallery application for the web. Prior to 16.4.0, admin/themes_standard_pages.php validates uploaded logo content by MIME type but reuses the attacker-controlled extension from std_pgs_logo when constructing the stored filename. An authenticated administrator can upload image content with a server-executable final extension, causing the file to be placed in the web-accessible logo directory and executed when requested if the web server handles that extension. This can permit arbitrary command execution, data disclosure, modification, persistence, and service disruption. This vulnerability is fixed in 16.4.0.

osv:CVE-2026-42322
Complete source record
{
  "id": "e4006262cada1955161318b3e63f040ef76e9d16ae149bae5f0d5a41d55881e0",
  "url": "https://osv.dev/vulnerability/CVE-2026-42322",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Piwigo: Authenticated RCE via File Upload in Logo Upload Feature",
    "summary": "Piwigo is a full featured open source photo gallery application for the web. Prior to 16.4.0, admin/themes_standard_pages.php validates uploaded logo content by MIME type but reuses the attacker-controlled extension from std_pgs_logo when constructing the stored filename. An authenticated administrator can upload image content with a server-executable final extension, causing the file to be placed in the web-accessible logo directory and executed when requested if the web server handles that extension. This can permit arbitrary command execution, data disclosure, modification, persistence, and service disruption. This vulnerability is fixed in 16.4.0.",
    "evidence": "osv:CVE-2026-42322",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-42322",
      "aliases": [
        "CVE-2026-42322",
        "GHSA-7w97-5g4p-xqvv"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/piwigo/piwigo",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "bef1a4ac424b4e986589e4cfc9f4d134f1b16f15"
                },
                {
                  "fixed": "1e7f7262cb30e6916779f93e66d5d6579ec75a11"
                },
                {
                  "fixed": "4a13ec9a8f4881ae1f23bdfd24d7b90cd0802cdc"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "16.4.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "1e7f7262cb30e6916779f93e66d5d6579ec75a11"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "4a13ec9a8f4881ae1f23bdfd24d7b90cd0802cdc"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "bef1a4ac424b4e986589e4cfc9f4d134f1b16f15"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "16.4.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "16.3.0",
            "16.2.0",
            "16.1.0",
            "16.0.0",
            "16.0.0RC3",
            "16.0.0RC2",
            "16.0.0RC1",
            "16.0.0beta2",
            "16.0.0beta1",
            "15.0.0beta3",
            "15.0.0beta2",
            "15.0.0beta1",
            "14.0.0RC2",
            "14.0.0RC1",
            "14.0.0beta3",
            "14.0.0beta2",
            "14.0.0beta1",
            "13.0.0RC4",
            "13.0.0RC3",
            "13.0.0RC2",
            "13.0.0RC1",
            "13.0.0beta2",
            "13.0.0beta1",
            "12.0.0RC2",
            "12.0.0RC1",
            "12.0.0beta2",
            "12.0.0beta1",
            "2.11.0beta4",
            "2.11.0beta3",
            "2.11.0beta2",
            "2.11.0beta1",
            "2.10.0RC1",
            "2.10.0beta2",
            "2.10.0beta1",
            "2.9.0RC2",
            "2.9.0RC1",
            "2.9.0beta2",
            "2.9.0beta1",
            "2.8.0RC2",
            "2.8.0RC1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-42322.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.366272673Z",
      "provider": "osv",
      "references": [
        "https://github.com/Piwigo/Piwigo/releases/tag/16.4.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42322.json",
        "https://github.com/Piwigo/Piwigo/security/advisories/GHSA-7w97-5g4p-xqvv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-42322",
        "https://github.com/Piwigo/Piwigo/commit/1e7f7262cb30e6916779f93e66d5d6579ec75a11",
        "https://github.com/Piwigo/Piwigo/commit/4a13ec9a8f4881ae1f23bdfd24d7b90cd0802cdc"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-434"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42322.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-42322",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492926,
  "published_at": "2026-09-25T15:50:34.662+00:00"
}