CVE-2026-17106 (GCVE-0-2026-17106)
Vulnerability from cvelistv5
Published
2026-08-18 18:35
Modified
2026-08-19 03:56
CWE
  • CWE-59 - Improper Link Resolution Before File Access ('Link Following')
Summary
The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process.
Impacted products
Vendor Product Version
moby go-archive Version: 0   
Create a notification for this product.
   Docker Docker Sandboxes Version: 0   
    cpe:2.3:a:docker:docker_sandboxes:*:*:*:*:*:*:*:*
Create a notification for this product.
   Docker Docker Desktop Version: 0   
    cpe:2.3:a:docker:desktop:*:*:*:*:*:*:*:*
Create a notification for this product.
   Docker Docker Engine Version: 0   
Create a notification for this product.
   Docker Docker CLI Version: 0   
Create a notification for this product.
   Docker Docker Compose Version: 0   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-17106",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-18T00:00:00+00:00",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-19T03:56:16.526Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/masasron/CopyEscape-CVE-2026-17106"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageName": "github.com/moby/go-archive",
          "product": "go-archive",
          "vendor": "moby",
          "versions": [
            {
              "lessThan": "0.3.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "cpes": [
            "cpe:2.3:a:docker:docker_sandboxes:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "platforms": [
            "MacOS",
            "Linux",
            "Windows"
          ],
          "product": "Docker Sandboxes",
          "vendor": "Docker",
          "versions": [
            {
              "lessThan": "0.38.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "cpes": [
            "cpe:2.3:a:docker:desktop:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "platforms": [
            "MacOS",
            "Linux",
            "Windows"
          ],
          "product": "Docker Desktop",
          "vendor": "Docker",
          "versions": [
            {
              "lessThan": "4.86.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "MacOS",
            "Linux",
            "Windows"
          ],
          "product": "Docker Engine",
          "vendor": "Docker",
          "versions": [
            {
              "lessThan": "29.7.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "MacOS",
            "Linux",
            "Windows"
          ],
          "product": "Docker CLI",
          "vendor": "Docker",
          "versions": [
            {
              "lessThan": "29.7.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "MacOS",
            "Linux",
            "Windows"
          ],
          "product": "Docker Compose",
          "vendor": "Docker",
          "versions": [
            {
              "lessThan": "5.4.0",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Ron Masas (Imperva) and other independent reports"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process."
            }
          ],
          "value": "The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "LOCAL",
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "ACTIVE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "HIGH",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-59",
              "description": "CWE-59: Improper Link Resolution Before File Access (\u0027Link Following\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-18T18:35:13.465Z",
        "orgId": "686469e6-3ff6-451b-ab8b-cf5b9e89401e",
        "shortName": "Docker"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://docs.docker.com/desktop/release-notes/#4860"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/docker/sbx-releases/releases/tag/v0.38.0"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://docs.docker.com/engine/release-notes/29/#2970"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/docker/cli/releases/tag/v29.7.0"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/docker/compose/releases/tag/v5.4.0"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/moby/go-archive/releases/tag/v0.3.0"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Tar extraction in moby/go-archive can write outside the destination directory via link following",
      "workarounds": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Only extract trusted archives."
            }
          ],
          "value": "Only extract trusted archives."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "686469e6-3ff6-451b-ab8b-cf5b9e89401e",
    "assignerShortName": "Docker",
    "cveId": "CVE-2026-17106",
    "datePublished": "2026-08-18T18:35:13.465Z",
    "dateReserved": "2026-07-24T15:24:25.317Z",
    "dateUpdated": "2026-08-19T03:56:16.526Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-17106\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-08-18T18:50:49.774785Z\"}}}], \"references\": [{\"url\": \"https://github.com/masasron/CopyEscape-CVE-2026-17106\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-08-18T18:51:08.466Z\"}}], \"cna\": {\"title\": \"Tar extraction in moby/go-archive can write outside the destination directory via link following\", \"source\": {\"discovery\": \"EXTERNAL\"}, \"credits\": [{\"lang\": \"en\", \"type\": \"finder\", \"value\": \"Ron Masas (Imperva) and other independent reports\"}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 7.1, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"valueDensity\": \"NOT_DEFINED\", \"vectorString\": \"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N\", \"exploitMaturity\": \"NOT_DEFINED\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"ACTIVE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"HIGH\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"HIGH\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"vendor\": \"moby\", \"product\": \"go-archive\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"0.3.0\", \"versionType\": \"semver\"}], \"packageName\": \"github.com/moby/go-archive\", \"defaultStatus\": \"unaffected\"}, {\"cpes\": [\"cpe:2.3:a:docker:docker_sandboxes:*:*:*:*:*:*:*:*\"], \"vendor\": \"Docker\", \"product\": \"Docker Sandboxes\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"0.38.0\", \"versionType\": \"semver\"}], \"platforms\": [\"MacOS\", \"Linux\", \"Windows\"], \"defaultStatus\": \"unaffected\"}, {\"cpes\": [\"cpe:2.3:a:docker:desktop:*:*:*:*:*:*:*:*\"], \"vendor\": \"Docker\", \"product\": \"Docker Desktop\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"4.86.0\", \"versionType\": \"semver\"}], \"platforms\": [\"MacOS\", \"Linux\", \"Windows\"], \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"Docker\", \"product\": \"Docker Engine\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"29.7.0\", \"versionType\": \"semver\"}], \"platforms\": [\"MacOS\", \"Linux\", \"Windows\"], \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"Docker\", \"product\": \"Docker CLI\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"29.7.0\", \"versionType\": \"semver\"}], \"platforms\": [\"MacOS\", \"Linux\", \"Windows\"], \"defaultStatus\": \"unaffected\"}, {\"vendor\": \"Docker\", \"product\": \"Docker Compose\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"5.4.0\", \"versionType\": \"semver\"}], \"platforms\": [\"MacOS\", \"Linux\", \"Windows\"], \"defaultStatus\": \"unaffected\"}], \"references\": [{\"url\": \"https://github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h\", \"tags\": [\"vendor-advisory\"]}, {\"url\": \"https://docs.docker.com/desktop/release-notes/#4860\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://github.com/docker/sbx-releases/releases/tag/v0.38.0\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://docs.docker.com/engine/release-notes/29/#2970\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://github.com/docker/cli/releases/tag/v29.7.0\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://github.com/docker/compose/releases/tag/v5.4.0\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://github.com/moby/go-archive/releases/tag/v0.3.0\", \"tags\": [\"patch\"]}], \"workarounds\": [{\"lang\": \"en\", \"value\": \"Only extract trusted archives.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"Only extract trusted archives.\", \"base64\": false}]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process.\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-59\", \"description\": \"CWE-59: Improper Link Resolution Before File Access (\u0027Link Following\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"686469e6-3ff6-451b-ab8b-cf5b9e89401e\", \"shortName\": \"Docker\", \"dateUpdated\": \"2026-08-18T18:35:13.465Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-17106\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-19T03:56:16.526Z\", \"dateReserved\": \"2026-07-24T15:24:25.317Z\", \"assignerOrgId\": \"686469e6-3ff6-451b-ab8b-cf5b9e89401e\", \"datePublished\": \"2026-08-18T18:35:13.465Z\", \"assignerShortName\": \"Docker\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…