{"id":"GHSA-3gjw-f78c-vvpw","aliases":["RUSTSEC-2026-0178"],"status":"published","title":"tokio-postgres: Panic on a `DataRow` with fewer fields than columns allows denial of service","description":"A malicious or compromised server can send a row containing fewer fields than\nits row description declares columns. Reading one of the missing columns then\npanics with an out-of-bounds index, aborting the calling task. This affects even\nthe otherwise non-panicking `try_get`, and both `Row` and `SimpleQueryRow`.\n\nApplications that connect only to a trusted database are not exposed; the risk\napplies to clients that may connect to untrusted or user-supplied servers, or\nwhose connection can be intercepted by a man-in-the-middle.","severity":{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-125"],"published":"2026-06-12T12:00:00Z","modified":"2026-08-25T02:55:59Z","fixes":[{"ecosystem":"crates.io","package":"tokio-postgres","fixed_in":["0.7.18"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"tokio-postgres","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.4.0"},{"fixed":"0.7.18"}]}]},{"source":"osv","ecosystem":"crates.io","package":"tokio-postgres","ranges":[{"type":"SEMVER","events":[{"introduced":"0.4.0"},{"fixed":"0.7.18"}]}]},{"source":"osv","ecosystem":"crates.io","package":"tokio-postgres","ranges":[{"type":"SEMVER","events":[{"introduced":"0.4.0"},{"fixed":"0.7.18"}]}]}],"references":[{"url":"https://github.com/rust-postgres/rust-postgres/commit/7a00ffa9ad4d951ec0a4564b52f1780fa9d353c1","tags":["web"]},{"url":"https://github.com/rust-postgres/rust-postgres/releases/tag/tokio-postgres-v0.7.18","tags":["web"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0178.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-3gjw-f78c-vvpw"},{"url":"https://github.com/rust-postgres/rust-postgres","tags":["package"]},{"url":"https://crates.io/crates/tokio-postgres","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-3gjw-f78c-vvpw","title":"tokio-postgres: Panic on a `DataRow` with fewer fields than columns allows denial of service","description":"A malicious or compromised server can send a row containing fewer fields than\nits row description declares columns. Reading one of the missing columns then\npanics with an out-of-bounds index, aborting the calling task. This affects even\nthe otherwise non-panicking `try_get`, and both `Row` and `SimpleQueryRow`.\n\nApplications that connect only to a trusted database are not exposed; the risk\napplies to clients that may connect to untrusted or user-supplied servers, or\nwhose connection can be intercepted by a man-in-the-middle.","status":"published","published":"2026-08-24T19:49:17Z","modified":"2026-08-24T19:49:17Z","cvss":[{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T14:41:04.755504Z"}],"osv":[{"id":"GHSA-3gjw-f78c-vvpw","title":"tokio-postgres: Panic on a `DataRow` with fewer fields than columns allows denial of service","description":"A malicious or compromised server can send a row containing fewer fields than\nits row description declares columns. Reading one of the missing columns then\npanics with an out-of-bounds index, aborting the calling task. This affects even\nthe otherwise non-panicking `try_get`, and both `Row` and `SimpleQueryRow`.\n\nApplications that connect only to a trusted database are not exposed; the risk\napplies to clients that may connect to untrusted or user-supplied servers, or\nwhose connection can be intercepted by a man-in-the-middle.","status":"published","published":"2026-08-24T19:49:17Z","modified":"2026-08-25T02:55:59.557390596Z","cvss":[{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-125"],"updated_at":"2026-11-02T15:46:35.747385Z"},{"id":"RUSTSEC-2026-0178","title":"Panic on a `DataRow` with fewer fields than columns allows denial of service","description":"A malicious or compromised server can send a row containing fewer fields than\nits row description declares columns. Reading one of the missing columns then\npanics with an out-of-bounds index, aborting the calling task. This affects even\nthe otherwise non-panicking `try_get`, and both `Row` and `SimpleQueryRow`.\n\nApplications that connect only to a trusted database are not exposed; the risk\napplies to clients that may connect to untrusted or user-supplied servers, or\nwhose connection can be intercepted by a man-in-the-middle.","status":"published","published":"2026-06-12T12:00:00Z","modified":"2026-08-25T02:45:03.437011884Z","cvss":[{"version":"4.0","score":6.9,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T15:53:40.430679Z"}]}}
