Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Piwigo admin credentials
-
DeliveryOpen Batch Manager filter URL
-
ExploitInject SQL via dimension/filesize values
-
ExecutionValues stored in session and concatenated into query
-
PersistExecute arbitrary SQL against database
-
ImpactDisclose 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
Apply vendor patch (Piwigo 16.4.0 or later).
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Directory traversal vulnerability in install.php in Piwigo before 2.4.7 allows remote attackers to read and delete arbit
Cross-site request forgery (CSRF) vulnerability in the LocalFiles Editor plugin in Piwigo before 2.4.7 allows remote att
SQL injection vulnerability in the administrative backend in Piwigo through 2.9.1 allows remote users to execute arbitra
Piwigo 13.6.0 is vulnerable to SQL Injection via in the "profile" function. Rated critical severity (CVSS 9.8), this vul
Piwigo 13.6.0 is vulnerable to SQL Injection via /admin/permalinks.php. Rated critical severity (CVSS 9.8), this vulnera
Piwigo 11.4.0 allows admin/user_list_backend.php order[0][dir] SQL Injection. Rated critical severity (CVSS 9.8), this v
admin.php?page=account_billing in Piwigo 2.9.5 has XSS via the vat_number, billing_name, company, or billing_
admin.php?page=notification_by_mail in Piwigo 2.9.5 has XSS via the nbm_send_html_mail, nbm_send_mai
Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica
Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica
Cross-site request forgery (CSRF) vulnerability in Piwigo through 2.9.1 allows remote attackers to hijack the authentica
admin/configuration.php in Piwigo 2.9.2 has CSRF. Rated high severity (CVSS 8.8), this vulnerability is remotely exploit
EUVD-2026-87135
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB