Arbitrary file read and write in Google ADK TypeScript (@google/adk) FileArtifactService via path traversal in userId and sessionId
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-105772
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 01:36 UTC · Revision 1
Source evidence
Arbitrary file read and write in Google ADK TypeScript (@google/adk) FileArtifactService via path traversal in userId and sessionId
core-osv · Original sourcePublished 20 Oct 2026, 17:50 UTC
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.
osv:CVE-2026-105772
Complete source record
{
"id": "6475bf124a8cf1a453a55c79db286c64017894fefe7f535fe7f9f710bc3ecc0c",
"url": "https://osv.dev/vulnerability/CVE-2026-105772",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Arbitrary file read and write in Google ADK TypeScript (@google/adk) FileArtifactService via path traversal in userId and sessionId",
"summary": "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.",
"evidence": "osv:CVE-2026-105772",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-105772",
"aliases": [
"CVE-2026-105772",
"GHSA-8hc4-6xx6-3rh3"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/google/adk-js",
"type": "GIT",
"events": [
{
"introduced": "e95ecb41282d8c24c46cb71eefaa682ade52c9a6"
},
{
"fixed": "393cbd2b721f6cc11b3c8362e06f0b93eb608a74"
},
{
"fixed": "8c0eaa160a43c1d791d5838a5de6ac87d905cf70"
},
{
"fixed": "710b4ebed118b0ded8fc257e5d0099e6b2008bc0"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0.4.0"
},
{
"fixed": "0.6.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "8c0eaa160a43c1d791d5838a5de6ac87d905cf70"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "710b4ebed118b0ded8fc257e5d0099e6b2008bc0"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"main-v0.5.0",
"devtools-v0.5.0",
"adk-v0.5.0",
"main-v0.4.0",
"devtools-v0.4.0",
"adk-v0.4.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-105772.json"
}
}
],
"modified": "2026-10-28T02:30:25.073863858Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105772.json",
"https://github.com/google/adk-js/security/advisories/GHSA-8hc4-6xx6-3rh3",
"https://nvd.nist.gov/vuln/detail/CVE-2026-105772",
"https://github.com/google/adk-js/commit/710b4ebed118b0ded8fc257e5d0099e6b2008bc0",
"https://github.com/google/adk-js/commit/8c0eaa160a43c1d791d5838a5de6ac87d905cf70",
"https://github.com/google/adk-js/pull/210",
"https://github.com/google/adk-js"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "Google",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105772.json"
}
},
"related_cves": [
{
"value": "CVE-2026-105772",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491677,
"published_at": "2026-10-20T17:50:13.132+00:00"
}