ZeroHour

CVE-2026-55509

niche

SQL injection in WsgiDAV sample MySQLBrowserProvider prior to 4.3.5

CVSS 4.0
8.8 high
EPSS
<1%p33
Published
()
Modified
AI analysis

WsgiDAV before 4.3.5 contains a SQL injection flaw (CWE-89) in its shipped sample MySQLBrowserProvider (wsgidav/samples/mysql_dav_provider.py), where the record key parsed from a request URL is concatenated directly into SQL WHERE clauses by the _exists_record_by_primary_key, _get_field_by_primary_key, and _get_record_by_primary_key methods. An attacker who can reach a share explicitly configured with this provider can inject SQL through a normal GET request. On anonymously exposed read shares, the attacker gains a status-code oracle and can extract arbitrary data reachable by the configured MySQL account, matching the CVSS 4.0 score of 8.8 (high confidentiality, low integrity impact). Only deployments that explicitly enable this non-default example provider are affected; it is not active in default WsgiDAV configurations. No public proof-of-concept is known, the issue is not in CISA KEV, and EPSS estimates only a 0.4% chance of exploitation in the next 30 days, indicating no known exploitation at this time.

What to do: Upgrade to WsgiDAV 4.3.5 or later. If upgrading is not immediately possible, remove or stop using the sample MySQLBrowserProvider, avoid exposing its shares anonymously, and restrict the configured MySQL account to minimal privileges. Audit your WsgiDAV configuration to confirm whether any shares reference mysql_dav_provider, and review logs for suspicious GET requests against those shares.

Affected
WsgiDAV project WsgiDAV (sample MySQLBrowserProvider in wsgidav/samples/mysql_dav_provider.py)all versions prior to 4.3.5, when a share is explicitly configured to use the sample MySQLBrowserProvider
Estimated exposure
nichelikely only hundreds to a few thousand deployments worldwide, and only those with the non-default sample MySQL provider enabled — WsgiDAV is a niche Python WebDAV server, and the vulnerable code is a shipped example provider that is disabled by default and requires an explicit MySQL-backed share configuration, so only a small fraction of an already small install base…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

WsgiDAV is a generic and extendable WebDAV server based on WSGI. Prior to 4.3.5, the sample MySQLBrowserProvider in wsgidav/samples/mysql_dav_provider.py concatenates the record key parsed from a request URL directly into SQL WHERE clauses. The affected _exists_record_by_primary_key, _get_field_by_primary_key, and _get_record_by_primary_key methods are part of a shipped example provider that is not enabled by default. An attacker who can access a share explicitly configured with this non-default provider can inject SQL through a normal GET request; anonymously exposed read shares permit a status-code oracle and extraction of arbitrary data reachable by the configured MySQL account. This issue is fixed in version 4.3.5.

Weakness
CWE-89
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.