Skip to main content

Piwigo CVE-2026-62262

| EUVDEUVD-2026-87136 CRITICAL
SQL Injection (CWE-89)
2026-09-25 GitHub_M
9.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Reach public Piwigo gallery with ratings enabled
  2. Delivery
    Call pwg.images.filteredSearch.create with crafted ratings[]
  3. Exploit
    Open returned search URL to execute query
  4. Execution
    Observe error/time-based responses
  5. Impact
    Extract database contents

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

Exploitation requires the Piwigo rating feature to be ENABLED (the vulnerable rating-bound filter clause is only built when rating is enabled) and the pwg.images.filteredSearch.create web API endpoint to be reachable by anonymous guests - both true in typical public gallery deployments. No authentication (PR:N), no user interaction (UI:N), and no non-default client configuration are needed beyond ratings being on. The attack targets Piwigo 17.0.0beta1 and all earlier versions. The primary limiting factor is that galleries with ratings disabled are not exploitable, and that as of this review no fixed version has been shipped so patched binaries are not yet distributable (mitigation is disabling ratings or applying the upstream commits).

Impact

The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N, base 9.1 Critical) describes a network-reachable, unauthenticated, low-complexity SQL injection requiring no user interaction - a genuinely dangerous combination. The technical detail supports the network/unauthenticated claims: an anonymous guest calls the pwg.images.filteredSearch.create web API and then opens the returned search URL. I assess the I:H component as overstated: the flaw lives in the upper-bound concatenation of a rating value inside a SELECT WHERE clause (rating_score < <raw>), which enables error-based, blind, and time-based extraction of database contents - a confidentiality/read primitive, not a demonstrated write/integrity primitive. No EPSS score, no CISA KEV listing, and no public POC are provided, so despite the high CVSS this is not confirmed to be under active or widespread exploitation. However, the vendor fix commits are public (GHSA-hq29-8hhx-5jwc), which lowers the bar for an attacker to reverse-engineer the vulnerable code path. One important limiting condition tempers the raw score: exploitation only works 'when rating is enabled,' so environments with the rating feature off are not affected. Net: a real, prioritize-and-patch-when-available issue for exposed Piwigo instances with ratings enabled, but not yet a confirmed mass-exploitation event.

Exploit ScenarioDerived

An unauthenticated attacker who can reach a public Piwigo gallery (17.0.0beta1 or earlier) with the rating feature enabled sends a pwg.images.filteredSearch.create request containing a crafted ratings[] value; the raw value is stored in the search rules and concatenated as the SQL upper rating bound. The attacker then opens the returned search URL to trigger the query, using error-based or time-based responses to extract database contents such as user credentials and session data. No public exploit code is identified at time of analysis, but the fix commits are public and the attack requires no authentication or user interaction.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 25, 2026

Unauthenticated SQL injection in Piwigo 17.0.0beta1 and earlier lets anonymous guests read arbitrary database contents through the public photo-search flow whenever the rating feature is enabled. An attacker calls pwg.images.filteredSearch.create with a crafted ratings[] value and then opens the returned search URL; because only the lower rating bound is integer-cast while the raw upper bound is concatenated directly into the SQL filter, error-based and blind extraction - plus database-dependent time delays - become possible over the network with no credentials or user interaction. The independent assessment rates confidentiality impact as High with no Integrity or Availability impact, and upstream fixes exist only as commits (9755d88, aede490) with no released patched version identified at time of analysis; no public exploit code or confirmed active exploitation was identified.

RemediationAI

No vendor-released patched version has been identified; the available fix is upstream commits 9755d88edf38b94bafdedb0b3aba7304a94e2e5c and aede490a0b3a6c246f1f4689ca86c8fee377a7ae, which apply intval() to the rating upper bound and add '^\d+$' validation of the ratings[] parameter respectively - administrators are advised to apply these commits or wait for the next tagged Piwigo release that incorporates them, and to monitor the advisory at https://github.com/Piwigo/Piwigo/security/advisories/GHSA-hq29-8hhx-5jwc. Until a patched build is available, the most effective compensating control is to disable the rating feature entirely (Administration → Configuration → Options → rating/photo-rating setting), which prevents the vulnerable rating-bound filter clause from ever being constructed; the trade-off is loss of user rating functionality across the gallery. If ratings must remain enabled, restrict or block anonymous access to ws.php and specifically to the pwg.images.filteredSearch.create method at the reverse proxy or WAF layer (for example, reject unauthenticated POSTs to ws.php with method=pwg.images.filteredSearch.create, or block requests whose ratings[] values are not strictly numeric), accepting that this may break legitimate guest search features; coordinate any such rule carefully because the method name is also used by normal client search workflows. Requiring authentication for the web-service endpoint reduces exposure but changes gallery behaviour for anonymous visitors and may break integrations.

Affected VersionsENISA

piwigo < 17.0.0beta1

Affected Packages

euvd piwigo fix: 17.0.0beta1

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

Piwigo is a PHP-based open-source photo gallery. The vulnerability is a classic CWE-89 SQL injection arising from asymmetric input handling in the search filter builder. In include/functions_search.inc.php, the rating filter clause was constructed as '(rating_score >= '.(intval($r)-1).' AND rating_score < '.$r.')' - the lower bound is passed through intval(), but the upper bound '$r' is concatenated raw into the SQL string. The attacker-controlled value originates in include/ws_functions/pwg.images.php, where the ws_images_filteredSearch_create() web-service handler accepts a ratings[] array parameter, stores it unvalidated in the persisted search rules, and returns a search URL; opening that URL triggers the vulnerable clause construction in the public search flow. The upstream fix (commit 9755d88) wraps the upper bound in intval(), and a second commit (aede490) adds a '^\d+$' preg_match validation loop in the web-service handler that rejects non-numeric ratings values with WS_ERR_INVALID_PARAM. The affected component is versioned generically as cpe:2.3:a:piwigo:piwigo:*:*:*:*:*:*:*:*, i.e. all Piwigo versions up to and including 17.0.0beta1. Exploitation requires the rating feature to be enabled so that the rating-bound filter clause is reached, and the anonymous-reachable pwg.images.filteredSearch.create API to be exposed - both default conditions in typical public galleries.

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 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.5 HIGH

Unauthenticated network SQLi (PR:N/AV:N/AC:L) in a SELECT WHERE clause yields high-confidence data extraction (C:H) but no demonstrated write, so I:N; time-delay is not a durable availability impact (A:N).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 25, 2026 - 17:04 EUVD
CVE Published
Sep 25, 2026 - 15:46 cve.org
CRITICAL 9.1

DescriptionCVE.org

Piwigo is a full featured open source photo gallery application for the web. In 17.0.0beta1 and earlier, when rating is enabled, an unauthenticated guest can call pwg.images.filteredSearch.create with a crafted ratings[] value and then open the returned search URL. include/ws_functions/pwg.images.php stores the unvalidated value in the search rules, and include/functions_search.inc.php integer-casts only the lower rating bound while concatenating the raw value as the SQL upper bound. This allows error-based or blind extraction of database information and database-dependent time delays through the public search flow. No fixed version is available as of this review.

Technical POC Analysis

CWE-89: SQL Injection.

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 17.0.0beta1 and earlier, whenever the photo-rating feature is enabled, can be made to hand over arbitrary database contents to anyone who can reach the site's public photo-search page. No credentials or user interaction are required, and the vendor has so far provided only source-code commits rather than a packaged release, leaving organizations that run Piwigo for public galleries, digital asset libraries or intranet image portals exposed while they wait. Because the data at risk sits in the same database as Piwigo's user accounts and site configuration, leadership should assume any sensitive or regulated content stored there is exposed until the vulnerable rating path is closed.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis (upstream source fixes exist only as commits 9755d88 and aede490). Interim mitigations: disable the photo-rating feature to remove the vulnerable code path; if ratings must remain enabled, block or restrict the pwg.images.filteredSearch.create endpoint at the WAF or reverse proxy, rate-limit the photo-search flow, monitor logs for crafted ratings[] parameters and the search URLs they generate, and run Piwigo against a least-privilege database account so any extraction is bounded to what that account can read.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche self-hosted open-source PHP 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Yes
Human Impact
High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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