<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 22:47:53 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-55509 — WsgiDAV: Blind SQL injection in the MySQL provider</title>
      <link>https://db.gcve.eu/vuln/cve-2026-55509</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; mar10 wsgidav&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; mar10 wsgidav&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-55509</guid>
    </item>
    <item>
      <title>PYSEC-2026-3945 — WsgiDAV MySQL provider has a blind SQL injection</title>
      <link>https://db.gcve.eu/vuln/pysec-2026-3945</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: wsgidav&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The sample `MySQLBrowserProvider` builds its SQL queries by concatenating strings, and the record key from the request URL goes straight into the WHERE clause with no escaping. Any user who can reach a share backed by this provider can inject SQL through the URL. Since these read shares are commonly published without authentication, an anonymous attacker can read arbitrary data from the backing database. Confirmed locally with a boolean oracle and full data extraction.&lt;/p&gt;
&lt;p&gt;**Note:**
The `MySQLBrowserProvider` module is only provided as an example for WsgiDAV and not enabled by default.
Installations that do not explicitly activate the module in their configuration are not affected by this vulnerability.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;A path like `/db/users/1` is split into a table name and a key. The table name is validated against the real table list, but the key is dropped directly into the query. For the configured table the resulting statement is `SELECT id FROM testdb.users WHERE id = &amp;#39;&amp;lt;key&amp;gt;&amp;#39;`, so a single quote in the key breaks out of the literal and the rest runs as SQL.&lt;/p&gt;
&lt;p&gt;The provider&amp;#39;s numeric-type check has a typo (`INTT` instead of `INT`), so even integer primary keys take the quoted branch, but that branch is equally injectable, just with a quote breakout. The injectable key is read during the normal existence check on a plain GET, so no authentication, write access, or special method is needed.&lt;/p&gt;
&lt;p&gt;The behavior shows up cleanly as a status-code oracle. A condition that ma…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: wsgidav&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The sample `MySQLBrowserProvider` builds its SQL queries by concatenating strings, and the record key from the request URL goes straight into the WHERE clause with no escaping. Any user who can reach a share backed by this provider can inject SQL through the URL. Since these read shares are commonly published without authentication, an anonymous attacker can read arbitrary data from the backing database. Confirmed locally with a boolean oracle and full data extraction.&lt;/p&gt;
&lt;p&gt;**Note:**
The `MySQLBrowserProvider` module is only provided as an example for WsgiDAV and not enabled by default.
Installations that do not explicitly activate the module in their configuration are not affected by this vulnerability.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;A path like `/db/users/1` is split into a table name and a key. The table name is validated against the real table list, but the key is dropped directly into the query. For the configured table the resulting statement is `SELECT id FROM testdb.users WHERE id = &amp;#39;&amp;lt;key&amp;gt;&amp;#39;`, so a single quote in the key breaks out of the literal and the rest runs as SQL.&lt;/p&gt;
&lt;p&gt;The provider&amp;#39;s numeric-type check has a typo (`INTT` instead of `INT`), so even integer primary keys take the quoted branch, but that branch is equally injectable, just with a quote breakout. The injectable key is read during the normal existence check on a plain GET, so no authentication, write access, or special method is needed.&lt;/p&gt;
&lt;p&gt;The behavior shows up cleanly as a status-code oracle. A condition that ma…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/pysec-2026-3945</guid>
    </item>
  </channel>
</rss>
