{"id":"CVE-2026-43868","aliases":["BIT-thrift-2026-43868","DEBIAN-CVE-2026-43868","EUVD-2026-27243","GHSA-2f9f-gq7v-9h6m","RUSTSEC-2026-0435","UBUNTU-CVE-2026-43868"],"status":"published","title":"Apache Thrift: Rust implementation vulnerable to CVE-2020-13949 pattern","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-10","score":0.00706,"percentile":0.53709,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1285","CWE-789"],"published":"2026-05-05T07:49:47Z","modified":"2026-11-02T12:10:42Z","fixes":[{"ecosystem":"crates.io","package":"thrift","fixed_in":["0.23.0"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"thrift","fixed_in":["0.23.0"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"thrift","fixed_in":["0.23.0-3"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.0"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"thrift","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.23.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.17.0-2","0.17.0-3","0.17.0-4","0.18.1-1","0.18.1-2","0.19.0-1","0.19.0-2","0.19.0-2.1","0.19.0-2.1~exp1","0.19.0-3","0.19.0-4","0.20.0-1","0.22.0-1","0.22.0-2","0.22.0-3","0.22.0-4","0.23.0-1","0.23.0-2","0.23.0-3","0.24.0-1","0.24.0-2","0.24.0-3"]},{"source":"osv","ecosystem":"Debian:13","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.19.0-4","0.20.0-1","0.22.0-1","0.22.0-2","0.22.0-3","0.22.0-4","0.23.0-1","0.23.0-2","0.23.0-3","0.24.0-1","0.24.0-2","0.24.0-3"]},{"source":"osv","ecosystem":"Debian:14","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.0-3"}]}],"versions":["0.19.0-4","0.20.0-1","0.22.0-1","0.22.0-2","0.22.0-3","0.22.0-4","0.23.0-1","0.23.0-2"]},{"source":"osv","ecosystem":"crates.io","package":"thrift","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.23.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"thrift","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.23.0"}]}]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.11.0-6","0.13.0-2build1","0.13.0-2build2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.13.0-6ubuntu1","0.13.0-6ubuntu2","0.13.0-6ubuntu3","0.13.0-7","0.16.0-2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.17.0-4","0.19.0-2","0.19.0-2build1","0.19.0-2.1build4","0.19.0-2.1build5"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.19.0-4build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.22.0-3ubuntu1","0.23.0-3","0.23.0-3ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"thrift","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.19.0-4build1","0.22.0-3","0.22.0-3ubuntu1"]}],"products":[{"vendor":"apache","product":"thrift"},{"vendor":"apache software foundation","product":"apache thrift"},{"vendor":"red hat","product":"red hat ai inference server"},{"vendor":"red hat","product":"red hat build of apache camel 3.33 for quarkus 3.33.2.sp1"},{"vendor":"red hat","product":"red hat build of apache camel 4 for quarkus 3"},{"vendor":"red hat","product":"red hat data grid 8"},{"vendor":"red hat","product":"red hat enterprise linux ai (rhel ai) 3"},{"vendor":"red hat","product":"red hat fuse 7"},{"vendor":"red hat","product":"red hat jboss enterprise application platform expansion pack"},{"vendor":"red hat","product":"red hat openshift ai (rhoai)"},{"vendor":"red hat","product":"red hat openshift ai 2.25"}],"references":[{"url":"https://lists.apache.org/thread/zj76dtwnbbs1m7z3focf4wd51pqpsmn9","tags":["vendor-advisory","Vendor Advisory","advisory","web"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-43868","tags":["vdb-entry","x_refsource_REDHAT","web","advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2466670","tags":["issue-tracking","x_refsource_REDHAT","web","report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-43868.json","tags":["x_sadp-csaf-vex","web"]},{"url":"https://access.redhat.com/errata/RHSA-2026:26586","tags":["vendor-advisory","x_refsource_REDHAT","web","advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2026:42644","tags":["vendor-advisory","x_refsource_REDHAT","web","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-43868","tags":["web","advisory"]},{"url":"https://github.com/apache/thrift/commit/d5152211af61f850ec393604316804096dd4632e","tags":["web"]},{"url":"https://github.com/advisories/GHSA-2f9f-gq7v-9h6m"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43868.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-43868","tags":["advisory"]},{"url":"https://github.com/apache/thrift","tags":["package"]},{"url":"https://crates.io/crates/thrift","tags":["package"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0435.html","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-43868","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-43868","tags":["report"]},{"url":"https://www.openwall.com/lists/oss-security/2026/05/05/2","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-43868","title":"Apache Thrift: Rust implementation vulnerable to CVE-2020-13949 pattern","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T07:49:47.754Z","modified":"2026-07-22T12:08:40.517Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"adp"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-789","CWE-789","CWE-1285"],"updated_at":"2026-11-02T13:37:25.103021Z"}],"euvd":[{"id":"EUVD-2026-27243","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T07:49:47Z","modified":"2026-07-22T12:08:40Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T18:19:46.900828Z"}],"ghsa":[{"id":"GHSA-2f9f-gq7v-9h6m","title":"Apache Thrift has a Memory Allocation with Excessive Size Value Vulnerability","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version [0.23.0](https://github.com/apache/thrift/releases/tag/v0.23.0), which fixes the issue.","status":"published","published":"2026-05-05T09:31:55Z","modified":"2026-07-21T20:01:40Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-789","CWE-1285"],"updated_at":"2026-11-02T14:40:50.444681Z"}],"nvd":[{"id":"CVE-2026-43868","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T09:16:04.123Z","modified":"2026-10-26T19:10:00.163Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-789","CWE-1285"],"updated_at":"2026-11-02T14:12:17.022502Z"}],"osv":[{"id":"CVE-2026-43868","title":"Apache Thrift: Rust implementation vulnerable to CVE-2020-13949 pattern","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T07:49:47.754Z","modified":"2026-11-02T12:10:42.318149664Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-789"],"updated_at":"2026-11-02T15:45:04.820169Z"},{"id":"DEBIAN-CVE-2026-43868","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.  This issue affects Apache Thrift: before 0.23.0.  Users are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T09:16:04.123Z","modified":"2026-10-27T10:01:40.710274369Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"updated_at":"2026-11-02T15:45:55.669088Z"},{"id":"GHSA-2f9f-gq7v-9h6m","title":"Apache Thrift has a Memory Allocation with Excessive Size Value Vulnerability","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version [0.23.0](https://github.com/apache/thrift/releases/tag/v0.23.0), which fixes the issue.","status":"published","published":"2026-05-05T09:31:55Z","modified":"2026-11-02T12:10:42.318149664Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-1285","CWE-789"],"updated_at":"2026-11-02T15:46:34.338541Z"},{"id":"RUSTSEC-2026-0435","title":"Unbounded memory allocation in `thrift` binary protocol `read_bytes`","description":"Affected versions of the `thrift` crate size a buffer directly from an attacker-controlled 4-byte length read off the wire, before reading any payload and with no upper bound, allowing a hostile peer to force a large eager allocation or an immediate abort (denial of service, CWE-400 / CWE-789). This is the Rust implementation's instance of the CVE-2020-13949 pattern, published by the Apache Thrift PMC as CVE-2026-43868.\n\n## Details\n\nIn `TBinaryInputProtocol::read_bytes` (`src/protocol/binary.rs`), the length is read as a `i32` from the transport and cast straight to `usize` to size a zeroing buffer **before** any payload is read:\n\n```rust\nfn read_bytes(\u0026mut self) -\u003e crate::Result\u003cVec\u003cu8\u003e\u003e {\n    let num_bytes = self.transport.read_i32::\u003cBigEndian\u003e()? as usize; // length from the wire\n    let mut buf = vec![0u8; num_bytes];                               // unbounded eager allocation\n    self.transport.read_exact(\u0026mut buf).map(|_| buf).map_err(From::from)\n}\n```\n\nThere is no check that `num_bytes` is non-negative or that it fits within the data actually available:\n\n- A length of `0x7FFFFFFF` forces a ~2 GiB allocation; `0x20000000` forces 512 MiB; and so on, from only a 4-byte input.\n- A negative length casts to a huge `usize` (up to `usize::MAX`), causing an immediate allocation failure / abort.\n\n`read_string` routes through `read_bytes`, so string fields are affected the same way. The sink is reachable from any peer sending binary-protocol data, so this is an unauthenticated, network-reachable denial of service.\n\n## The fix\n\nFrom `thrift` 0.23.0 onward, `read_bytes` goes through `read_binary_len`, which rejects negative sizes and enforces `TConfiguration::max_string_size` (default 100 MiB), alongside default message, frame, and recursion limits.\n\nA separate, related gap on the non-strict message-name path was published as CVE-2026-58389 and fixed in 0.24.0; this advisory covers the `read_bytes` unbounded allocation (CVE-2026-43868), fixed in 0.23.0.","status":"published","published":"2026-11-02T12:00:00Z","modified":"2026-11-02T12:10:42.318149664Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:40.430679Z"},{"id":"UBUNTU-CVE-2026-43868","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift. This issue affects Apache Thrift: before 0.23.0. Users are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-05T09:16:00Z","modified":"2026-10-17T13:00:07.173178114Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:56:22.075798Z"},{"id":"BIT-thrift-2026-43868","title":"Apache Thrift: Rust implementation vulnerable to CVE-2020-13949 pattern","description":"Memory Allocation with Excessive Size Value vulnerability in Apache Thrift.\n\nThis issue affects Apache Thrift: before 0.23.0.\n\nUsers are recommended to upgrade to version 0.23.0, which fixes the issue.","status":"published","published":"2026-05-07T08:53:15.762Z","modified":"2026-11-02T12:10:42.318149664Z","updated_at":"2026-11-02T15:28:36.104787Z"}]}}
