CVE-2026-55509
nicheSQL injection in WsgiDAV sample MySQLBrowserProvider prior to 4.3.5
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.
| 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 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.