{"id":"CVE-2020-26279","aliases":["ALPINE-CVE-2020-26279","EUVD-2021-1239","GHSA-27pv-q55r-222g","GO-2022-0779"],"status":"published","title":"Path traversal","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","severity":{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.01699,"percentile":0.77498,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2021-03-24T20:20:14Z","modified":"2026-11-03T06:32:37Z","fixes":[{"ecosystem":"Go","package":"github.com/ipfs/go-ipfs","fixed_in":["0.8.0"],"sources":["ghsa","osv"]},{"ecosystem":"Alpine:v3.13","package":"go-ipfs","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.14","package":"go-ipfs","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.15","package":"go-ipfs","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.16","package":"go-ipfs","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"kubo","fixed_in":["0.8.0-r0"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"github.com/ipfs/go-ipfs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.13","package":"go-ipfs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.14","package":"go-ipfs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.15","package":"go-ipfs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.16","package":"go-ipfs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"kubo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.0-r0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/ipfs/go-ipfs","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.8.0"}]}]},{"source":"osv","ecosystem":"Go","package":"github.com/ipfs/go-ipfs","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.8.0"}]}]}],"products":[{"vendor":"ipfs","product":"go-ipfs"},{"vendor":"protocol","product":"go-ipfs"}],"references":[{"url":"https://github.com/ipfs/go-ipfs/security/advisories/GHSA-27pv-q55r-222g","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/ipfs/go-ipfs/commit/b7ddba7fe47dee5b1760b8ffe897908417e577b2","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/whyrusleeping/tar-utils/commit/20a61371de5b51380bbdb0c7935b30b0625ac227","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-26279","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-27pv-q55r-222g"},{"url":"https://security.alpinelinux.org/vuln/CVE-2020-26279","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2020-26279","title":"Path traversal","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","status":"published","published":"2021-03-24T20:20:14Z","modified":"2024-08-04T15:56:04.169Z","cvss":[{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:35:46.129376Z"}],"euvd":[{"id":"EUVD-2021-1239","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","status":"published","published":"2021-03-24T20:20:14Z","modified":"2024-08-04T15:56:04Z","cvss":[{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high"}],"updated_at":"2026-11-03T03:07:14.653267Z"}],"ghsa":[{"id":"GHSA-27pv-q55r-222g","title":"Path traversal in github.com/ipfs/go-ipfs","description":"### Impact\nIt is currently possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when `ipfs get` is done on an affected DAG.\n\n1. The only affected command is `ipfs get`.\n2. The gateway is not affected.\n\n### Patches\nTraversal fix patched in https://github.com/whyrusleeping/tar-utils/commit/20a61371de5b51380bbdb0c7935b30b0625ac227\n`tar-utils` patch applied to go-ipfs via https://github.com/ipfs/go-ipfs/commit/b7ddba7fe47dee5b1760b8ffe897908417e577b2\n\n### Workarounds\nUpgrade to go-ipfs 0.8 or later.\n\n### References\nBinaries for the patched versions of go-ipfs are available on the IPFS distributions site, https://dist.ipfs.io/go-ipfs\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [go-ipfs](https://github.com/ipfs/go-ipfs)\n* Email us at [security@ipfs.io](mailto:security@ipfs.io)","status":"published","published":"2021-06-23T17:27:44Z","modified":"2023-01-09T05:04:49Z","cvss":[{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:36:10.502376Z"}],"nvd":[{"id":"CVE-2020-26279","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","status":"published","published":"2021-03-24T21:15:11.037Z","modified":"2026-06-17T03:07:59.207Z","cvss":[{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high","assessor":"secondary"},{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":5.5,"vector":"AV:N/AC:L/Au:S/C:N/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:06:37.687844Z"}],"osv":[{"id":"ALPINE-CVE-2020-26279","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","status":"published","published":"2021-03-24T21:15:11.037Z","modified":"2026-11-03T06:32:37.05518629Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"updated_at":"2026-11-03T07:17:20.312441Z"},{"id":"CVE-2020-26279","description":"go-ipfs is an open-source golang implementation of IPFS which is a global, versioned, peer-to-peer filesystem. In go-ipfs before version 0.8.0-rc1, it is possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when a get is done on an affected DAG. This is fixed in version 0.8.0-rc1.","status":"published","published":"2021-03-24T21:15:11.037Z","modified":"2026-10-20T10:52:58.606573226Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:16.248747Z"},{"id":"GHSA-27pv-q55r-222g","title":"Path traversal in github.com/ipfs/go-ipfs","description":"### Impact\nIt is currently possible for path traversal to occur with DAGs containing relative paths during retrieval. This can cause files to be overwritten, or written to incorrect output directories. The issue can only occur when `ipfs get` is done on an affected DAG.\n\n1. The only affected command is `ipfs get`.\n2. The gateway is not affected.\n\n### Patches\nTraversal fix patched in https://github.com/whyrusleeping/tar-utils/commit/20a61371de5b51380bbdb0c7935b30b0625ac227\n`tar-utils` patch applied to go-ipfs via https://github.com/ipfs/go-ipfs/commit/b7ddba7fe47dee5b1760b8ffe897908417e577b2\n\n### Workarounds\nUpgrade to go-ipfs 0.8 or later.\n\n### References\nBinaries for the patched versions of go-ipfs are available on the IPFS distributions site, https://dist.ipfs.io/go-ipfs\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [go-ipfs](https://github.com/ipfs/go-ipfs)\n* Email us at [security@ipfs.io](mailto:security@ipfs.io)","status":"published","published":"2021-06-23T17:27:44Z","modified":"2026-09-10T03:49:14.888691728Z","cvss":[{"version":"3.1","score":7.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:33.956911Z"},{"id":"GO-2022-0779","title":"Path traversal in github.com/ipfs/go-ipfs","description":"Path traversal in github.com/ipfs/go-ipfs","status":"published","published":"2024-08-21T15:28:59Z","modified":"2026-03-03T04:50:53.152414Z","updated_at":"2026-11-02T15:47:00.918515Z"}]}}
