{"answers":{"affected":"3 open source packages ship an affected version, including wsgidav and WsgiDAV.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-55509 exists.","fix":"Upgrade wsgidav to 4.3.5 or later.","what":"CVE-2026-55509 is a high-severity SQL injection vulnerability in mar10 wsgidav, published on 28 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-55509 and fix it if it is affected.\n\nWhat it is: CVE-2026-55509 is a high-severity SQL injection vulnerability in mar10 wsgidav, published on 28 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-55509 exists.\n\nAffected packages and fixed versions:\n- wsgidav (PyPI): affected all versions; fixed in 4.3.5\n- wsgidav (PyPI): affected all versions; fixed in 4.3.5\n- WsgiDAV (PyPI): affected all versions; fixed in 4.3.5\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-55509/ (Markdown: https://insights.sbomify.com/CVE-2026-55509/index.md)","id":"CVE-2026-55509","markdown":"https://insights.sbomify.com/CVE-2026-55509/index.md","name":"CVE-2026-55509","record":{"aliases":["GHSA-p6gw-4frg-j7jw","PYSEC-2026-3945"],"analysis":{"component_type":"server_software","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"yes","non_default_config":true,"product_category":"WebDAV server","requires_auth":"none","summary":"An attacker can inject SQL via URL to extract arbitrary data from the database when using the non-default MySQL provider in WsgiDAV.","user_interaction":"not_required","vuln_class":"sql_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":8.8,"severity":"high","source":"cna","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","version":"4.0"},"cwes":[{"id":"CWE-89","name":"Improper Neutralization of Special Elements used in an SQL Command"}],"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.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"WsgiDAV: Blind SQL injection in the MySQL provider","id":"CVE-2026-55509","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"sql_injection","year":"2026"},"n_packages":3,"n_references":4,"next":{"headline":"ImageMagick: Use-After-Free in crafted 8BIM when identifying an image","id":"CVE-2026-55510"},"packages":[{"ecosystem":"PyPI","fixed":["4.3.5"],"introduced":["0"],"last_affected":[],"package":"WsgiDAV","purl":null,"source":"GHSA-p6gw-4frg-j7jw"},{"ecosystem":"PyPI","fixed":["4.3.5"],"introduced":["0"],"last_affected":[],"package":"wsgidav","purl":"pkg:pypi/wsgidav","source":"GHSA-p6gw-4frg-j7jw"},{"ecosystem":"PyPI","fixed":["4.3.5"],"introduced":["0"],"last_affected":[],"package":"wsgidav","purl":"pkg:pypi/wsgidav","source":"PYSEC-2026-3945"}],"prev":{"headline":"Cloudreve: OAuth Admin.Read scope can update OneDrive storage policy credentials","id":"CVE-2026-55502"},"products":["wsgidav"],"published":"2026-08-28","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-28","vendors":["mar10"]},"summary":"An attacker can inject SQL via URL to extract arbitrary data from the database when using the non-default MySQL provider in WsgiDAV.","url":"https://insights.sbomify.com/CVE-2026-55509/"}