{"id":"CVE-2026-105772","state":"PUBLISHED","title":"Arbitrary file read and write in Google ADK TypeScript (@google/adk) FileArtifactService via path traversal in userId and sessionId","description":"Path Traversal (CWE-22) in FileArtifactService in Google ADK TypeScript (@google/adk) versions 0.4.0 before 0.6.0 allows a remote unauthenticated attacker to read files matching the artifact directory layout or write files (when an agent tool invokes saveArtifact) outside the intended artifact storage root via crafted relative or percent-encoded path traversal sequences (such as ../ or ..%2F) in the userId or sessionId parameters when the ADK API server is exposed with the non-default FileArtifactService enabled. Applications using the default InMemoryArtifactService are unaffected. Upgrade to @google/adk version 0.6.0 or later.","publishedAt":"2026-10-20T17:50:13.132Z","updatedAt":"2026-10-20T18:08:00.481Z","severity":{"score":9.1,"label":"Critical","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","source":"Google"},"assigner":"Google","products":["Google ADK TypeScript (@google/adk)"],"affected":[{"vendor":"Google","product":"ADK TypeScript (@google/adk)","packageName":"@google/adk","defaultStatus":"unaffected","versions":[{"version":"0.4.0","status":"affected","lessThan":"0.6.0","versionType":"semver"}],"repo":"https://github.com/google/adk-js"}],"references":["https://github.com/google/adk-js/security/advisories/GHSA-8hc4-6xx6-3rh3","https://github.com/google/adk-js/pull/210","https://github.com/google/adk-js/commit/8c0eaa160a43c1d791d5838a5de6ac87d905cf70","https://github.com/google/adk-js/commit/710b4ebed118b0ded8fc257e5d0099e6b2008bc0"],"weaknesses":["CWE-22"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/105xxx/CVE-2026-105772.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-105772","state":"PUBLISHED","datePublished":"2026-10-20T17:50:13.132Z","dateUpdated":"2026-10-20T18:08:00.481Z","assignerShortName":"Google","assignerOrgId":"14ed7db2-1595-443d-9d34-6215bf890778","dateReserved":"2026-10-05T19:48:07.182Z"},"containers":{"cna":{"title":"Arbitrary file read and write in Google ADK TypeScript (@google/adk) FileArtifactService via path traversal in userId and sessionId","descriptions":[{"lang":"en","value":"Path Traversal (CWE-22) in FileArtifactService in Google ADK TypeScript (@google/adk) versions 0.4.0 before 0.6.0 allows a remote unauthenticated attacker to read files matching the artifact directory layout or write files (when an agent tool invokes saveArtifact) outside the intended artifact storage root via crafted relative or percent-encoded path traversal sequences (such as ../ or ..%2F) in the userId or sessionId parameters when the ADK API server is exposed with the non-default FileArtifactService enabled. Applications using the default InMemoryArtifactService are unaffected. Upgrade to @google/adk version 0.6.0 or later."}],"affected":[{"vendor":"Google","product":"ADK TypeScript (@google/adk)","packageName":"@google/adk","defaultStatus":"unaffected","versions":[{"version":"0.4.0","status":"affected","lessThan":"0.6.0","versionType":"semver"}],"repo":"https://github.com/google/adk-js"}],"references":[{"url":"https://github.com/google/adk-js/security/advisories/GHSA-8hc4-6xx6-3rh3","tags":["vendor-advisory"]},{"url":"https://github.com/google/adk-js/pull/210","tags":["patch","issue-tracking"]},{"url":"https://github.com/google/adk-js/commit/8c0eaa160a43c1d791d5838a5de6ac87d905cf70","tags":["patch"]},{"url":"https://github.com/google/adk-js/commit/710b4ebed118b0ded8fc257e5d0099e6b2008bc0","tags":["related"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","subConfidentialityImpact":"NONE","vulnIntegrityImpact":"HIGH","subIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"CRITICAL","baseScore":9.1,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","lang":"en","description":"CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","type":"CWE"}]}],"providerMetadata":{"shortName":"Google","orgId":"14ed7db2-1595-443d-9d34-6215bf890778","dateUpdated":"2026-10-20T17:50:13.132Z"},"datePublic":"2026-09-29T17:18:00.000Z","impacts":[{"capecId":"CAPEC-126","descriptions":[{"lang":"en","value":"CAPEC-126 Path Traversal"}]},{"capecId":"CAPEC-139","descriptions":[{"lang":"en","value":"CAPEC-139 Relative Path Traversal"}]}],"credits":[{"lang":"en","value":"Gouri Sankar A (@g0w6y)","type":"finder"}],"source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 1.0.2"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-105772","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-20T18:03:11.873837Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-20T18:08:00.481Z"}}]}}}