{"id":"CVE-2019-15547","aliases":["EUVD-2021-1524","GHSA-32v7-ghpr-c8hg","GHSA-g7r5-x7cr-vm3v","RUSTSEC-2019-0006","UBUNTU-CVE-2019-15547"],"status":"published","title":"Mishandling of format strings in ncurses","description":"An issue was discovered in the ncurses crate through 5.99.0 for Rust. There are format string issues in printw functions because C format arguments are mishandled.","severity":{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.01236,"percentile":0.69262,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-119","CWE-134"],"published":"2019-06-15T12:00:00Z","modified":"2026-06-17T02:20:36Z","affected":[{"source":"ghsa","ecosystem":"crates.io","package":"ncurses","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"5.101.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"ncurses","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"5.101.0"}]}],"bundled":2},{"source":"osv","ecosystem":"crates.io","package":"ncurses","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"5.101.0"}]}],"bundled":2},{"source":"osv","ecosystem":"crates.io","package":"ncurses","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"}]}],"bundled":2},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"rust-ncurses","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.99.0-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"rust-ncurses","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.99.0-3"]}],"products":[{"vendor":"ncurses_project","product":"ncurses"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2019-0006.html","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","web","advisory","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-15547","tags":["advisory"]},{"url":"https://github.com/RustSec/advisory-db/issues/106","tags":["web","report"]},{"url":"https://github.com/jeaye/ncurses-rs/issues/172","tags":["web"]},{"url":"https://github.com/advisories/GHSA-32v7-ghpr-c8hg"},{"url":"https://github.com/jeaye/ncurses-rs","tags":["package"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-15548","tags":["advisory"]},{"url":"https://crates.io/crates/ncurses","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2019-15547","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-15547","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2019-15547","description":"An issue was discovered in the ncurses crate through 5.99.0 for Rust. There are format string issues in printw functions because C format arguments are mishandled.","status":"published","published":"2019-08-26T17:05:33Z","modified":"2024-08-05T00:49:13.648Z","updated_at":"2026-11-02T14:20:21.397307Z"}],"euvd":[{"id":"EUVD-2021-1524","description":"An issue was discovered in the ncurses crate through 5.99.0 for Rust. There are format string issues in printw functions because C format arguments are mishandled.","status":"published","published":"2019-08-26T17:05:33Z","modified":"2024-08-05T00:49:13Z","updated_at":"2026-11-03T02:40:35.584574Z"}],"ghsa":[{"id":"GHSA-32v7-ghpr-c8hg","title":"Mishandling of format strings in ncurses","description":"ncurses exposes functions from the ncurses library which:\n* Pass buffers without length to C functions that may write an arbitrary amount of data, leading to a buffer overflow. (instr, mvwinstr, etc)\n* Passes rust \u0026str to strings expecting C format arguments, allowing hostile input to execute a format string attack, which trivially allows writing arbitrary data to stack memory (functions in the printw family).\n","status":"published","published":"2021-08-25T20:58:47Z","modified":"2023-06-13T18:30:36Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-134"],"updated_at":"2026-11-02T14:36:53.654352Z"}],"nvd":[{"id":"CVE-2019-15547","description":"An issue was discovered in the ncurses crate through 5.99.0 for Rust. There are format string issues in printw functions because C format arguments are mishandled.","status":"published","published":"2019-08-26T18:15:12.78Z","modified":"2026-06-17T02:20:36.513Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":6.4,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-134"],"updated_at":"2026-11-02T14:05:23.725587Z"}],"osv":[{"id":"GHSA-32v7-ghpr-c8hg","title":"Mishandling of format strings in ncurses","description":"ncurses exposes functions from the ncurses library which:\n* Pass buffers without length to C functions that may write an arbitrary amount of data, leading to a buffer overflow. (instr, mvwinstr, etc)\n* Passes rust \u0026str to strings expecting C format arguments, allowing hostile input to execute a format string attack, which trivially allows writing arbitrary data to stack memory (functions in the printw family).\n","status":"published","published":"2021-08-25T20:58:47Z","modified":"2023-11-08T04:01:13.981343Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-134"],"updated_at":"2026-11-02T15:46:35.050232Z"},{"id":"GHSA-g7r5-x7cr-vm3v","title":"Buffer overflow and format vulnerabilities in ncurses","description":"ncurses exposes functions from the ncurses library which:\n* Pass buffers without length to C functions that may write an arbitrary amount of data, leading to a buffer overflow. (instr, mvwinstr, etc)\n* Passes rust \u0026str to strings expecting C format arguments, allowing hostile input to execute a format string attack, which trivially allows writing arbitrary data to stack memory (functions in the printw family).\n","status":"published","published":"2021-08-25T20:58:29Z","modified":"2023-11-08T04:01:13.981343Z","cvss":[{"version":"3.0","score":9.8,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-119"],"updated_at":"2026-11-02T15:46:47.472172Z"},{"id":"UBUNTU-CVE-2019-15547","description":"An issue was discovered in the ncurses crate through 5.99.0 for Rust. There are format string issues in printw functions because C format arguments are mishandled.","status":"published","published":"2019-08-26T18:15:00Z","modified":"2025-10-24T04:47:49Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:54:19.6877Z"},{"id":"RUSTSEC-2019-0006","title":"Buffer overflow and format vulnerabilities in functions exposed without unsafe","description":"`ncurses` exposes functions from the ncurses library which:\n\n- Pass buffers without length to C functions that may write an arbitrary amount of\n  data, leading to a buffer overflow. (`instr`, `mvwinstr`, etc)\n- Passes rust \u0026str to strings expecting C format arguments, allowing hostile\n  input to execute a format string attack, which trivially allows writing\n  arbitrary data to stack memory (functions in the `printw` family).","status":"published","published":"2019-06-15T12:00:00Z","modified":"2023-11-08T04:01:13.981343Z","updated_at":"2026-11-02T15:53:39.492624Z"}]}}
