Skip to main content

Piwigo EUVDEUVD-2026-87135

| CVE-2026-42323 HIGH
SQL Injection (CWE-89)
2026-09-25 GitHub_M
7.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Piwigo admin credentials
  2. Delivery
    Open Batch Manager filter URL
  3. Exploit
    Inject SQL via dimension/filesize values
  4. Execution
    Values stored in session and concatenated into query
  5. Persist
    Execute arbitrary SQL against database
  6. Impact
    Disclose or modify or destroy data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Piwigo administrator account (PR:H) and access to the admin/batch_manager.php Batch Manager. The specific trigger is the URL-based filter parser (as opposed to the validated POST filter path): supplying crafted dimension width/height/ratio or filesize values in the filter URL, which are stored in the bulk_manager_filter session state and later concatenated into SQL predicates without numeric validation. Exploitation is limited to Piwigo versions prior to 16.4.0 and to actors who already hold administrator privileges, which is the primary factor constraining real-world risk to insider abuse, credential theft, or admin-session hijacking.

Impact

The CVSS vector CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (base 7.2, High) is internally consistent with the description: a network-reachable admin endpoint (admin/batch_manager.php) with low attack complexity and no user interaction, but requiring high privileges (PR:H - an authenticated administrator). This is a genuine CWE-89 SQL injection, confirmed by the vendor GHSA advisory and the fix commits, which add filter_var()/FILTER_VALIDATE_INT/FILTER_VALIDATE_FLOAT numeric validation to the previously-unvalidated width/height/ratio/filesize URL filter values before they reach SQL predicate concatenation. The critical mitigating signal is PR:H: the attacker must already hold Piwigo administrator rights, a role that legitimately controls much of the application and database content, so the marginal privilege gain is limited to direct arbitrary SQL execution beyond the app's intended query surface. No EPSS score, no CISA KEV listing, and no public POC were supplied, so exploitation is: no public exploit identified at time of analysis. Overall this is a real, well-documented flaw but a moderate operational priority rather than an urgent one - the admin-only precondition sharply narrows the realistic threat to insider misuse, compromised admin credentials, or chaining from an admin-session CSRF/XSS. No signals conflict; the main caveat is that C:H/I:H/A:H somewhat overstates net impact given the attacker is already a trusted admin.

Exploit ScenarioDerived

An attacker who has obtained Piwigo administrator access (via stolen/weak credentials or a hijacked admin session) opens the Batch Manager and crafts a filter URL with malicious dimension or filesize values (e.g. width/height/ratio/filesize segments containing SQL). The parser stores the values into the bulk_manager_filter session state and later concatenates them into SQL predicates, enabling time-based blind or in-band injection to read, alter, or destroy database data. No public exploit code is currently identified, and attack complexity is low once admin access exists.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

SQL injection in Piwigo's Batch Manager (admin/batch_manager.php) allows an authenticated administrator to inject time-based or other SQL expressions through unvalidated dimension (width, height, ratio) and filesize values supplied in the filter URL, potentially disclosing, modifying, or disrupting database contents. The flaw affects Piwigo versions prior to 16.4.0 and arises because the URL filter parser stores raw values in the bulk_manager_filter session state, which is later concatenated into SQL predicates, unlike the validated POST filter path. Exploitation requires an existing high-privileged administrator account (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2), and no public exploit code has been identified at time of analysis; the vendor-released patch is version 16.4.0.

RemediationAI

Upgrade to Piwigo 16.4.0, which is the vendor-released patch and adds FILTER_VALIDATE_INT/FILTER_VALIDATE_FLOAT checks to the URL filter parser before values are stored in the bulk_manager_filter session state; see the release notes at https://github.com/Piwigo/Piwigo/releases/tag/16.4.0, the advisory at https://github.com/Piwigo/Piwigo/security/advisories/GHSA-7r67-9xhq-7p2c, and the fix commits at https://github.com/Piwigo/Piwigo/commit/c7e30da5c1775b531ce9a30aac04134cd714b472 and https://github.com/Piwigo/Piwigo/commit/e4f0989d350d66207066ea61f8ee8c137164fb2f for verification. Where an immediate upgrade is not possible, treat this as an admin-privilege abuse issue: restrict or IP-allowlist access to admin/batch_manager.php at the web server or reverse proxy (side effect: legitimate administrators cannot use Batch Manager from disallowed networks), enforce strong authentication and session rotation for admin accounts, and audit/terminate unused administrator sessions, since PR:H means the attacker must already hold or steal admin credentials. Do not rely on disabling the filter feature alone, as the session state may persist; any interim ACL change should be paired with monitoring of admin/batch_manager.php requests containing non-numeric dimension or filesize filter parameters.

Affected VersionsENISA

piwigo < 16.4.0

Affected Packages

euvd piwigo fix: 16.4.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

This is a CWE-89 SQL injection in the PHP-based Piwigo photo gallery application. The vulnerable component is the URL-based filter parser in admin/batch_manager.php, which accepts attacker-controlled 'dimension' values (width, height, ratio) and 'filesize' values without numeric validation. Those raw values are written into the $_SESSION['bulk_manager_filter']['dimension'] and ['filesize'] session state and later concatenated directly into SQL predicates when bulk queries are built, while the separate POST filter path performs validation. The upstream fix in version 16.4.0 adds filter_var() checks using FILTER_VALIDATE_INT for width/height and FILTER_VALIDATE_FLOAT for ratio and filesize, only persisting the values when all inputs pass validation; the two referenced commits (c7e30da5c1775b531ce9a30aac04134cd714b472 and e4f0989d350d66207066ea61f8ee8c137164fb2f) implement this guard. The CPE cpe:2.3:a:piwigo:piwigo:*:*:*:*:*:*:*:* confirms the wildcard version range covers all releases before 16.4.0. Because the injection point is reachable only from the authenticated admin interface, the practical attack surface is an administrator session rather than an unauthenticated external attacker.

Know when Piwigo gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.2 HIGH

Network-reachable admin endpoint with low complexity and no UI, but requires administrator (PR:H); SQL injection yields full read/write/destroy of the database, so C:H/I:H/A:H.

3.1 AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 25, 2026 - 17:04 EUVD
CVE Published
Sep 25, 2026 - 15:42 cve.org
HIGH 7.2

DescriptionCVE.org

Piwigo is a full featured open source photo gallery application for the web. Prior to 16.4.0, admin/batch_manager.php accepts administrator-controlled dimension width, height, and ratio values and filesize values from the Batch Manager filter URL without numeric validation. The URL filter parser stores those values in the bulk_manager_filter session state, and later query construction concatenates them into SQL predicates, unlike the validated POST filter path. An authenticated administrator can use crafted filter values to execute time-based or other SQL expressions and potentially disclose, modify, or disrupt database data. This issue is fixed in version 16.4.0.

Technical POC Analysis

CWE-89 (SQL injection) in Piwigo's Batch Manager, admin/batchmanager.php.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Piwigo's Batch Manager, used in versions prior to 16.4.0, contains a high-severity SQL injection that requires an authenticated administrator account to exploit. No public exploit identified at time of analysis, but a malicious or compromised admin could read, modify, or disrupt the gallery database, affecting data confidentiality, integrity, and service availability. Leadership should prioritize remediation for any internet-facing or business-critical Piwigo deployments because admin-level database compromise can have broad operational and compliance consequences.

Business Impact: High
Compensating Controls

Apply vendor patch (Piwigo 16.4.0 or later).

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
Low
niche self-hosted open-source photo gallery, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

More in Piwigo

View all
CVE-2013-1469 MEDIUM POC
4.0 Mar 13

Directory traversal vulnerability in install.php in Piwigo before 2.4.7 allows remote attackers to read and delete arbit

CVE-2013-1468 HIGH POC
7.6 Mar 14

Cross-site request forgery (CSRF) vulnerability in the LocalFiles Editor plugin in Piwigo before 2.4.7 allows remote att

CVE-2017-10682 CRITICAL POC
9.8 Jun 29

SQL injection vulnerability in the administrative backend in Piwigo through 2.9.1 allows remote users to execute arbitra

CVE-2023-33362 CRITICAL POC
9.8 May 23

Piwigo 13.6.0 is vulnerable to SQL Injection via in the "profile" function. Rated critical severity (CVSS 9.8), this vul

CVE-2023-33361 CRITICAL POC
9.8 May 23

Piwigo 13.6.0 is vulnerable to SQL Injection via /admin/permalinks.php. Rated critical severity (CVSS 9.8), this vulnera

CVE-2021-32615 CRITICAL POC
9.8 May 13

Piwigo 11.4.0 allows admin/user_list_backend.php order[0][dir] SQL Injection. Rated critical severity (CVSS 9.8), this v

CVE-2019-13364 CRITICAL POC
9.6 Sep 13

admin.php?page=account_billing in Piwigo 2.9.5 has XSS via the vat&#95;number, billing&#95;name, company, or billing&#95

CVE-2019-13363 CRITICAL POC
9.6 Sep 13

admin.php?page=notification_by_mail in Piwigo 2.9.5 has XSS via the nbm&#95;send&#95;html&#95;mail, nbm&#95;send&#95;mai

CVE-2017-10681 HIGH POC
8.8 Jun 29

Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica

CVE-2017-10680 HIGH POC
8.8 Jun 29

Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica

CVE-2017-10678 HIGH POC
8.8 Jun 29

Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica

CVE-2017-17774 HIGH POC
8.8 Dec 20

admin/configuration.php in Piwigo 2.9.2 has CSRF. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy