{"id":"CVE-2020-15904","aliases":["EUVD-2020-0058","GHSA-f8m3-jpxr-hm5x","PYSEC-2020-30"],"status":"published","title":"bsdiff4 out-of-bounds write via patch file","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","severity":{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.0105,"percentile":0.64506,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-787"],"published":"2020-07-22T22:25:51Z","modified":"2026-10-20T13:52:01Z","fixes":[{"ecosystem":"PyPI","package":"bsdiff4","fixed_in":["1.2.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"bsdiff4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0"}]}]},{"source":"osv","ecosystem":"PyPI","package":"bsdiff4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0"}]}],"versions":["1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9"]},{"source":"osv","ecosystem":"PyPI","package":"bsdiff4","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"49a4cee2feef7deaf9d89e5e793a8824930284d7"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0"}]}],"versions":["1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9"]}],"products":[{"vendor":"pypi","product":"bsdiff4"}],"references":[{"url":"https://github.com/ilanschnell/bsdiff4/commit/49a4cee2feef7deaf9d89e5e793a8824930284d7","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/ilanschnell/bsdiff4/blob/master/CHANGELOG.txt","tags":["x_refsource_MISC","x_transferred","Release Notes","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15904","tags":["advisory"]},{"url":"https://github.com/ilanschnell/bsdiff4/blob/9a84c2ee01f5ba0742d18c9f3b3d5244ae7fb302/CHANGELOG.txt#L30-L31","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/bsdiff4/PYSEC-2020-30.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-f8m3-jpxr-hm5x","tags":["advisory"]},{"url":"https://github.com/ilanschnell/bsdiff4","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-15904","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2020-07-22T22:25:51Z","modified":"2024-08-04T13:30:23.224Z","updated_at":"2026-11-02T14:35:50.228781Z"}],"euvd":[{"id":"EUVD-2020-0058","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2020-07-22T22:25:51Z","modified":"2024-08-04T13:30:23Z","updated_at":"2026-11-03T03:07:29.843843Z"}],"ghsa":[{"id":"GHSA-f8m3-jpxr-hm5x","title":"bsdiff4 out-of-bounds write via patch file","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2022-05-24T17:24:16Z","modified":"2024-09-06T15:56:55Z","cvss":[{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:38:01.080229Z"}],"nvd":[{"id":"CVE-2020-15904","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2020-07-22T23:15:11.33Z","modified":"2026-06-17T02:57:22.917Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.8,"vector":"AV:N/AC:M/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T14:06:10.086163Z"}],"osv":[{"id":"CVE-2020-15904","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2020-07-22T23:15:11.33Z","modified":"2026-10-20T13:52:01.683968039Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:14.828228Z"},{"id":"GHSA-f8m3-jpxr-hm5x","title":"bsdiff4 out-of-bounds write via patch file","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2022-05-24T17:24:16Z","modified":"2024-09-06T16:00:50.578968Z","cvss":[{"version":"3.1","score":7.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","level":"high"},{"version":"4.0","score":8.5,"vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-787"],"updated_at":"2026-11-02T15:46:46.006631Z"},{"id":"PYSEC-2020-30","description":"A buffer overflow in the patching routine of bsdiff4 before 1.2.0 allows an attacker to write to heap memory (beyond allocated bounds) via a crafted patch file.","status":"published","published":"2020-07-22T23:15:00Z","modified":"2026-06-10T17:00:39.031299899Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
