{"id":"CVE-2026-35381","aliases":["DEBIAN-CVE-2026-35381","EUVD-2026-25038","GHSA-532v-xp3f-837c","GHSA-pmfc-4wjj-gmhx","UBUNTU-CVE-2026-35381"],"status":"published","title":"uutils coreutils cut Local Logic Error and Data Integrity Issue in Output Filtering","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","severity":{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00182,"percentile":0.07832,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-684"],"published":"2026-04-22T16:09:22Z","modified":"2026-10-28T02:30:28Z","fixes":[{"ecosystem":"crates.io","package":"uu_cut","fixed_in":["0.8.0"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:14","package":"rust-coreutils","fixed_in":["0.8.0-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"uu_cut","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"rust-coreutils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0.17-2","0.0.17-3","0.0.17-4","0.0.17-5","0.0.17-6","0.0.19-1","0.0.19-2","0.0.19-3","0.0.20-1","0.0.21-1","0.0.22-1","0.0.23-1","0.0.23-2","0.0.23-3","0.0.24-1","0.0.24-2","0.0.26-1","0.0.26-2","0.0.26-3","0.0.26-4","0.0.26-5","0.0.27-1","0.0.27-2","0.0.27-3","0.0.30-1","0.0.30-2","0.0.30-3","0.0.30-3~exp1","0.0.30-4","0.10.0-1","0.11.0-1","0.11.0-2","0.12.0-1","0.6.0-1","0.7.0-1","0.8.0-1","0.8.0-2","0.8.0-3","0.8.0-4","0.8.0-5","0.8.0-6","0.9.0-1","0.9.0-2","0.9.0-3"]},{"source":"osv","ecosystem":"Debian:13","package":"rust-coreutils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0.30-2","0.0.30-3","0.0.30-3~exp1","0.0.30-4","0.10.0-1","0.11.0-1","0.11.0-2","0.12.0-1","0.6.0-1","0.7.0-1","0.8.0-1","0.8.0-2","0.8.0-3","0.8.0-4","0.8.0-5","0.8.0-6","0.9.0-1","0.9.0-2","0.9.0-3"]},{"source":"osv","ecosystem":"Debian:14","package":"rust-coreutils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-1"}]}],"versions":["0.0.30-2","0.0.30-3","0.0.30-3~exp1","0.0.30-4","0.6.0-1","0.7.0-1"]},{"source":"osv","ecosystem":"crates.io","package":"uu_cut","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.8.0"}]}]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"rust-coreutils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0.20-1","0.0.22-1","0.0.23-1","0.0.23-2","0.0.23-3","0.0.24-1","0.0.24-2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"rust-coreutils","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.0.30-1","0.0.30-2","0.0.30-2ubuntu2","0.1.0-0ubuntu1","0.1.0+git20250711.2ba3a33-0ubuntu1","0.1.0+git20250711.2ba3a33-0ubuntu2","0.1.0+git20250711.2ba3a33-0ubuntu3","0.1.0+git20250711.2ba3a33-0ubuntu4","0.1.0+git20250801.cf79675-0ubuntu1","0.1.0+git20250813.4af2a84-0ubuntu2","0.1.0+git20250813.4af2a84-0ubuntu4","0.1.0+git20250813.4af2a84-0ubuntu6","0.1.0+git20250813.4af2a84-0ubuntu7","0.2.2-0ubuntu1","0.2.2-0ubuntu2","0.2.2-0ubuntu2.1"]}],"products":[{"vendor":"uutils","product":"coreutils"}],"references":[{"url":"https://github.com/uutils/coreutils/pull/11394","tags":["issue-tracking","patch","Exploit","Issue Tracking","Patch","fix","web","report"]},{"url":"https://github.com/uutils/coreutils/releases/tag/0.8.0","tags":["vendor-advisory","Release Notes","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35381","tags":["advisory"]},{"url":"https://github.com/uutils/coreutils/commit/483f13e91830c468262aa1e010e753d6ae99c898","tags":["web"]},{"url":"https://github.com/advisories/GHSA-532v-xp3f-837c"},{"url":"https://github.com/uutils/coreutils/security/advisories/GHSA-pmfc-4wjj-gmhx","tags":["web"]},{"url":"https://github.com/advisories/GHSA-pmfc-4wjj-gmhx"},{"url":"https://github.com/uutils","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35381.json","tags":["advisory"]},{"url":"https://github.com/uutils/coreutils","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-35381","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-35381","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-35381","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-35381","title":"uutils coreutils cut Local Logic Error and Data Integrity Issue in Output Filtering","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T16:09:22.228Z","modified":"2026-04-22T16:53:09.992Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"cna"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T14:20:05.15083Z"}],"euvd":[{"id":"EUVD-2026-25038","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T16:09:22Z","modified":"2026-04-22T16:53:09Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T19:24:20.283712Z"}],"ghsa":[{"id":"GHSA-532v-xp3f-837c","title":"Duplicate Advisory: uutils coreutils has an Incorrect Provision of Specified Functionality Issue in its cut Utility","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-pmfc-4wjj-gmhx. This link is maintained to preserve external references.\n\n### Original Description\nA logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"withdrawn","published":"2026-04-22T18:31:46Z","modified":"2026-07-06T21:54:22Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T14:40:40.389795Z"},{"id":"GHSA-pmfc-4wjj-gmhx","title":"cut: -s ignored in -z -d '' newline-delimiter mode","description":"`cut` routes `-z -d ''` through a special newline-delimiter path that ignores the `-s` only-delimited flag, emitting whole undelimited records (plus NUL) that should be suppressed. Pipelines relying on `cut -s` to drop undelimited records process data that should be filtered.\n```\nprintf 'abc' | cut -z -d '' -s -f 1 | od -An -tx1   # GNU: no output ; uutils: 61 62 63 00\n```\n\n---\n_Zellic private finding (zellic-ext/coreutils-private PR #102). Reported in the Zellic *uutils coreutils Program Security Assessment* (for Canonical, Jan 2026), audited commit `3a07ffc5a9bd4c283e75afa548ba1f1957bad242`._","status":"published","published":"2026-07-06T21:54:29Z","modified":"2026-10-06T18:15:54Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T14:41:27.036917Z"}],"nvd":[{"id":"CVE-2026-35381","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T17:16:43.2Z","modified":"2026-10-26T22:10:00.163Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low","assessor":"secondary"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T14:12:15.867234Z"}],"osv":[{"id":"CVE-2026-35381","title":"uutils coreutils cut Local Logic Error and Data Integrity Issue in Output Filtering","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T16:09:22.228Z","modified":"2026-10-28T02:30:28.023403946Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T15:45:02.673625Z"},{"id":"DEBIAN-CVE-2026-35381","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T17:16:43.2Z","modified":"2026-10-27T09:47:35.67725797Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T15:45:54.587575Z"},{"id":"GHSA-532v-xp3f-837c","title":"Duplicate Advisory: uutils coreutils has an Incorrect Provision of Specified Functionality Issue in its cut Utility","description":"### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-pmfc-4wjj-gmhx. This link is maintained to preserve external references.\n\n### Original Description\nA logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"withdrawn","published":"2026-04-22T18:31:46Z","modified":"2026-09-10T03:50:42.782385769Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T15:46:37.864461Z"},{"id":"GHSA-pmfc-4wjj-gmhx","title":"cut: -s ignored in -z -d '' newline-delimiter mode","description":"`cut` routes `-z -d ''` through a special newline-delimiter path that ignores the `-s` only-delimited flag, emitting whole undelimited records (plus NUL) that should be suppressed. Pipelines relying on `cut -s` to drop undelimited records process data that should be filtered.\n```\nprintf 'abc' | cut -z -d '' -s -f 1 | od -An -tx1   # GNU: no output ; uutils: 61 62 63 00\n```\n\n---\n_Zellic private finding (zellic-ext/coreutils-private PR #102). Reported in the Zellic *uutils coreutils Program Security Assessment* (for Canonical, Jan 2026), audited commit `3a07ffc5a9bd4c283e75afa548ba1f1957bad242`._","status":"published","published":"2026-07-06T21:54:29Z","modified":"2026-10-06T18:30:03.60380025Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"cwes":["CWE-684"],"updated_at":"2026-11-02T15:46:53.244788Z"},{"id":"UBUNTU-CVE-2026-35381","description":"A logic error in the cut utility of uutils coreutils causes the utility to ignore the -s (only-delimited) flag when using the -z (null-terminated) and -d '' (empty delimiter) options together. The implementation incorrectly routes this specific combination through a specialized newline-delimiter code path that fails to check the record suppression status. Consequently, uutils cut emits the entire record plus a NUL byte instead of suppressing it. This divergence from GNU coreutils behavior creates a data integrity risk for automated pipelines that rely on cut -s to filter out undelimited data.","status":"published","published":"2026-04-22T17:16:00Z","modified":"2026-05-14T14:41:49.748334Z","cvss":[{"version":"3.1","score":3.3,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","level":"low"}],"updated_at":"2026-11-02T16:56:16.686388Z"}]}}
