{"answers":{"affected":"It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-12045 in the wild and no public exploit code.","fix":"Upgrade to a fixed version.","what":"CVE-2026-12045 is a critical SQL injection vulnerability in pgadmin.org pgAdmin 4, published on 18 Jun 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link."},"fix_prompt":"Check this codebase for CVE-2026-12045 and fix it if it is affected.\n\nWhat it is: CVE-2026-12045 is a critical SQL injection vulnerability in pgadmin.org pgAdmin 4, published on 18 Jun 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.\nExploitation: There is no known exploitation of CVE-2026-12045 in the wild and no public exploit code.\n\nAffected product: pgadmin.org pgAdmin 4. No package-level version data is available, so check the vendor advisory linked from the reference page.\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-12045/ (Markdown: https://insights.sbomify.com/CVE-2026-12045/index.md)","id":"CVE-2026-12045","markdown":"https://insights.sbomify.com/CVE-2026-12045/index.md","name":"CVE-2026-12045","record":{"aliases":["GHSA-95q2-vx3p-f723"],"analysis":{"component_type":"web_application","fix_type":"upgrade","impacts":["code_execution","data_modify"],"network_reachable":"yes","non_default_config":false,"product_category":"PostgreSQL management tool","requires_auth":"low_privilege","summary":"Prompt injection in pgAdmin 4 AI Assistant bypasses read-only restrictions, allowing unauthorized SQL execution and potential remote code execution.","user_interaction":"required","vuln_class":"sql_injection"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"PostgreSQL","cpe":[{"product":"pgadmin_4","vendor":"pgadmin"}],"cvss":{"score":9.4,"severity":"critical","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H","version":"4.0"},"cwes":[{"id":"CWE-89","name":"Improper Neutralization of Special Elements used in an SQL Command"},{"id":"CWE-77","name":"Improper Neutralization of Special Elements used in a Command"}],"description":"Read-only transaction bypass in the pgAdmin 4 AI Assistant allows an attacker who can influence database content that the assistant reads to execute arbitrary SQL with the privileges of the pgAdmin user's database role.\n\nThe AI Assistant's execute_sql_query tool runs LLM-generated SQL inside a BEGIN TRANSACTION READ ONLY wrapper to prevent data modification. The LLM-supplied query was forwarded to the database driver without restriction to a single statement or to read-only verbs, so a multi-statement payload beginning with COMMIT, END, ROLLBACK, or ABORT terminated the read-only transaction and ran subsequent statements in autocommit mode. The trailing ROLLBACK then had no effect.\n\nDelivery is via prompt injection: an attacker who can write content into any object the AI Assistant may inspect (a row, a column value, a comment) can cause the LLM to emit the multi-statement payload as a tool call. With ordinary write privileges on the pgAdmin user's role the attacker can perform unauthorised data modification. When the pgAdmin user's role is a PostgreSQL superuser or holds pg_execute_server_program, the chain extends to remote code execution on the database server host via COPY ... TO PROGRAM.\n\nFix validates the LLM-supplied query up front: it must parse to exactly one non-empty / non-comment statement whose leading real token (after stripping whitespace, comments, and punctuation) is one of SELECT, WITH, EXPLAIN, SHOW, VALUES, or TABLE. Transaction-control verbs, DML, DDL, CALL, COPY, DO, SET/RESET, and everything else are rejected before any database work happens. PostgreSQL's READ ONLY mode continues to backstop data-modifying CTEs, EXPLAIN ANALYZE on writes, and volatile side effects.\n\nThis issue affects pgAdmin 4: from 9.13 before 9.16.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"pgAdmin 4: AI Assistant read-only transaction bypass allows unauthorised writes and remote code execution","id":"CVE-2026-12045","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"sql_injection","year":"2026"},"n_packages":0,"n_references":2,"next":{"headline":"Deserialization in pgAdmin 4","id":"CVE-2026-12046"},"packages":[],"prev":{"headline":"pgAdmin 4: SQL injection in COMMENT ON ... IS '\u003cdescription\u003e' rendering across dialog templates","id":"CVE-2026-12044"},"products":["pgAdmin 4"],"published":"2026-06-18","related":[{"cvss_score":9.9,"headline":"pgAdmin 4: Remote Code Execution in Query Tool and Cloud Deployment","id":"CVE-2025-2945","kev_date_added":null,"published":"2025-04-03"},{"cvss_score":9.9,"headline":"OAuth2 client id and secret exposed through the web browser in pgAdmin 4","id":"CVE-2024-9014","kev_date_added":null,"published":"2024-09-23"},{"cvss_score":9.5,"headline":"Deserialization in pgAdmin 4","id":"CVE-2026-12046","kev_date_added":null,"published":"2026-06-18"},{"cvss_score":9.4,"headline":"SQL injection in pgAdmin 4","id":"CVE-2026-17351","kev_date_added":null,"published":"2026-07-31"},{"cvss_score":9.4,"headline":"Command injection in pgAdmin 4","id":"CVE-2026-17566","kev_date_added":null,"published":"2026-07-31"},{"cvss_score":9.4,"headline":"pgAdmin 4: Cross-user data access and shared-server privilege escalation in server mode","id":"CVE-2026-7813","kev_date_added":null,"published":"2026-05-11"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-06-23","vendors":["pgadmin.org"]},"summary":"Prompt injection in pgAdmin 4 AI Assistant bypasses read-only restrictions, allowing unauthorized SQL execution and potential remote code execution.","url":"https://insights.sbomify.com/CVE-2026-12045/"}