{"id":"CVE-2026-115522","revision":null,"records":[{"revision":"519de5360d1e4aa29b1366008a1d8341","observedAt":"2026-10-28T06:06:08.472+00:00","statement":{"source":"cve-program","id":"CVE-2026-115522","aliases":[],"title":"Cross-Application Artifact Namespace Isolation in Google Agent Development Kit (ADK) for Python","description":"Exposure of Resource to Wrong Sphere (CWE-668) in FileArtifactService in Google Agent Development Kit (ADK) for Python (google-adk) versions 1.19.0 before 1.39.1 and 2.0.0a1 before 2.7.0 allows a caller in one application to list, read, overwrite, or delete artifacts belonging to another application when both applications share a FileArtifactService root directory and use the same user_id (and session_id for session-scoped artifacts). FileArtifactService accepted app_name across its public API methods but omitted app_name when constructing on-disk paths (root/users/{user_id}/... instead of root/apps/{app_name}/users/{user_id}/...). Version 2.6.0 scoped writes by app_name but retained a legacy root/users/{user_id} fallback for reads and deletes; version 2.7.0 and the 1.x backport in version 1.39.1 removed the fallback and enforce full per-app path scoping.","state":0,"publishedAt":"2026-10-28T04:36:49.927+00:00","modifiedAt":"2026-10-28T04:36:49.927+00:00","affected":[{"ecosystem":"Vendor product","name":"google-adk","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Google\",\n                    \"product\": \"Agent Development Kit (ADK) for Python\",\n                    \"packageName\": \"google-adk\",\n                    \"repo\": \"https://github.com/google/adk-python\",\n                    \"versions\": [\n                        {\n                            \"status\": \"affected\",\n                            \"version\": \"1.19.0\",\n                            \"lessThan\": \"1.39.1\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"status\": \"affected\",\n                            \"version\": \"2.0.0a1\",\n                            \"lessThan\": \"2.7.0\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"defaultStatus\": \"unaffected\"\n                }"}],"metrics":[{"system":"CVSS 4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","score":5.3,"severity":"MEDIUM"}],"references":["https://github.com/google/adk-python/issues/5618","https://github.com/google/adk-python/pull/5619","https://github.com/google/adk-python/commit/f72f0db58c5c1f4e8b8d4f04b8c592c9e49cbe9e","https://github.com/google/adk-python/commit/c27d8688ed9ea619587ad96cbfd641c34dd7340c","https://github.com/google/adk-python/commit/0ae2bffdd2628af6c8643bc4fd40c2f49f0c6bd4","https://github.com/google/adk-python/releases/tag/v1.39.1","https://github.com/google/adk-python/releases/tag/v2.7.0"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-115522","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-115522","identifiers":["CVE-2026-115522"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-31T15:05:03.4732281+00:00","complete":true,"records":1766,"lastAttemptAt":"2026-10-31T15:05:03.4732281+00:00","lastSuccessAt":"2026-10-31T15:05:03.6216092+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:03.621611+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-9266d7b009bf9c4a0ccdcb5cbdea7f905cb3c4d92fd3b41581ece16b2cfdc4e7-8544f3bcef74cbc883873ef332214908d149a018eb144c089fad2f199e13911a","complete":true,"records":417574,"lastAttemptAt":"2026-10-31T15:05:02.7506676+00:00","lastSuccessAt":"2026-10-31T15:05:02.7188611+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:02.7506676+00:00","snapshotPublishedAt":"2026-10-31T14:20:54+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-1ea90a365f5b43ef9a5b92be53fe0867","complete":true,"records":13565,"lastAttemptAt":"2026-10-31T15:05:29.8505291+00:00","lastSuccessAt":"2026-10-31T11:34:32.033+00:00","error":null,"lastVerifiedAt":"2026-10-31T11:34:32.033+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13637,"expectedIdentifiers":13637,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-31T15:05:03.4732281+00:00","complete":true,"records":1094,"lastAttemptAt":"2026-10-31T15:05:03.4732281+00:00","lastSuccessAt":"2026-10-31T15:05:03.6228797+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:03.6228802+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-0b4ce912e9594c1898691b107f7c0b95","complete":true,"records":13577,"lastAttemptAt":"2026-10-31T15:05:29.1766677+00:00","lastSuccessAt":"2026-10-31T15:05:29.172+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:29.172+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13637,"expectedIdentifiers":13637,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-21dcd6662970dfea02e4ea60ee637115e8d92664947484d2b9276b3f6568a84f","complete":true,"records":9815,"lastAttemptAt":"2026-10-31T15:05:03.4133224+00:00","lastSuccessAt":"2026-10-30T23:47:34.1817587+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:03.4133224+00:00","snapshotPublishedAt":"2026-10-30T23:33:17+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-2de9ccc5290f060c7aa63f89c25dd76f655a64ba1aba7c05c97fa3bee4f09899","complete":true,"records":1967,"lastAttemptAt":"2026-10-31T15:05:02.9199792+00:00","lastSuccessAt":"2026-10-28T20:55:34.2982937+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:02.9199792+00:00","snapshotPublishedAt":"2026-10-28T20:03:08+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-f95f76cd406ae5bae3de632ad37fd2d5160b44f5e6b51748ac6f8f0c0c88e72b","complete":true,"records":3028,"lastAttemptAt":"2026-10-31T15:05:03.4292973+00:00","lastSuccessAt":"2026-10-30T23:47:38.4914494+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:03.4292973+00:00","snapshotPublishedAt":"2026-10-30T23:18:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-d37f475fd4943f3910741120036649d396d0a133edf936fc0112d88abf9bb041","complete":true,"records":230993,"lastAttemptAt":"2026-10-31T15:05:03.2975216+00:00","lastSuccessAt":"2026-10-31T12:35:41.6420764+00:00","error":null,"lastVerifiedAt":"2026-10-31T15:05:03.2975216+00:00","snapshotPublishedAt":"2026-10-31T12:33:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}