{"schemaVersion":3,"id":"CVE-2026-109448","aliases":["DEBIAN-CVE-2026-109448","openSUSE-SU-2026:12135-1","UBUNTU-CVE-2026-109448","openSUSE-SU-2026:22122-1"],"status":"published","duplicateOf":null,"title":null,"description":"Integer wraparound in psqlODBC SQLBindParameter allows an application, or an attacker who controls how many parameters the application binds on one statement, to corrupt heap memory. psqlODBC stores the binding count in a signed 16-bit field. Binding parameter number 32768 wraps that count to -32768. Binding parameter 32769 then writes about 2.5 MB of zeros starting 1.25 MB before the binding array, which crashes the application or leaves it running on a corrupted heap. Applications that build parameter lists from untrusted input, such as an IN (?, ?, ...) list, are exposed. Versions before psqlODBC 18.00.0005 are affected.","dates":{"published":"2026-10-12T17:42:59.581Z","modified":"2026-10-16T17:48:46.624Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.9,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.9,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.9,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":5.9,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","exploitability":5.6,"impact":6,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":5.9,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H","exploitability":5.6,"impact":6,"computed":true}]},"epss":{"probability":0.00222,"percentile":0.12036,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-10-13T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00222,"percentile":0.12036}],"last30":[{"date":"2026-10-13T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00222,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00222,"percentile":0.12036}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-124","name":"Buffer Underwrite ('Buffer Underflow')","description":"The product writes to a buffer using an index or pointer that references a memory location prior to the beginning of the buffer.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/124.html"},{"id":"CWE-190","name":"Integer Overflow or Wraparound","description":"The product performs a calculation that can\n         produce an integer overflow or wraparound when the logic\n         assumes that the resulting value will always be larger than\n         the original value. This occurs when an integer value is\n         incremented to a value that is too large to store in the\n         associated representation. When this occurs, the value may\n         become a very small or negative number.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/190.html"}],"affected":[{"vendor":"debian","product":"psqlodbc","name":"psqlodbc","label":"psqlodbc","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/psqlodbc","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1:18.00.0005-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 1:18.00.0005-1","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"psqlodbc","name":"psqlodbc","label":"psqlodbc","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/psqlodbc","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"postgresql","product":"psqlodbc","name":"psqlODBC","label":"psqlodbc","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 08.01.0102, < 18.00.0005","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 08.01.0102, < 18.00.0005","eol":null,"hubHref":"/vendor/postgresql/psqlodbc"},{"vendor":"opensuse","product":"psqlODBC&distro=openSUSE Leap 16.0","name":"psqlODBC","label":"psqlODBC&distro=openSUSE Leap 16.0","ecosystem":"openSUSE","cpePart":null,"purl":"pkg:rpm/opensuse/psqlODBC&distro=openSUSE Leap 16.0","purlType":"rpm","versions":[{"text":"< 18.00.0005-bp160.1.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 18.00.0005-bp160.1.1","eol":null,"hubHref":null},{"vendor":"opensuse","product":"psqlODBC&distro=openSUSE Tumbleweed","name":"psqlODBC","label":"psqlODBC&distro=openSUSE Tumbleweed","ecosystem":"openSUSE","cpePart":null,"purl":"pkg:rpm/opensuse/psqlODBC&distro=openSUSE Tumbleweed","purlType":"rpm","versions":[{"text":"< 18.00.0005-1.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 18.00.0005-1.1","eol":null,"hubHref":null}],"affectedCount":5,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-cmfx-rm3r-p2jr","label":"github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-cmfx-rm3r-p2jr","hostname":"github.com","tags":["Vendor Advisory","REPORT"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-109448","label":"security-tracker.debian.org/tracker/CVE-2026-109448","hostname":"security-tracker.debian.org","tags":["Advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-109448","label":"www.suse.com/security/cve/CVE-2026-109448","hostname":"www.suse.com","tags":["WEB"]},{"url":"https://ubuntu.com/security/CVE-2026-109448","label":"ubuntu.com/security/CVE-2026-109448","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-109448","label":"www.cve.org/CVERecord?id=CVE-2026-109448","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://bugzilla.suse.com/1285073","label":"bugzilla.suse.com/1285073","hostname":"bugzilla.suse.com","tags":["REPORT"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-10-12T17:42:59.581Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-10-16T17:48:46.624Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":24,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T11:53:46.287Z","stale":false,"partial":false}}