)]}'
{
  "commit": "35058d93a551f115a314a1b52e9a55c4745153d8",
  "tree": "038ad7113c83b2cf95c21a1838c1aa57a9752d8c",
  "parents": [
    "b159c903dc1d67c43c914cd2d821cd3f5b8b9884"
  ],
  "author": {
    "name": "Josh Hou",
    "email": "joshhou@google.com",
    "time": "Sun May 24 09:54:16 2026 -0700"
  },
  "committer": {
    "name": "Android Build Coastguard Worker",
    "email": "android-build-coastguard-worker@google.com",
    "time": "Fri Jul 10 08:25:38 2026 -0700"
  },
  "message": "Fix path traversal and missing ownership check in LocaleManagerService\n\nThe getOverrideLocaleConfig method in LocaleManagerService lacked an ownership\ncheck, allowing unauthorized cross-package and cross-user disclosure of\napp-specific locale configurations. Additionally, the packageName parameter was\nused to construct a file path without proper validation, enabling path traversal\nattacks.\n\nThis change adds the missing ownership and permission checks, ensuring that\nonly the app owner, installer, or apps with the READ_APP_SPECIFIC_LOCALES\npermission can access the configuration. It also validates that the constructed\nfile path remains within the intended directory to prevent path traversal, and logs blocked attempts to SafetyNet.\n\nBug: 495409704\nTest: atest LocaleManagerServiceTest and manual test\nFlag: EXEMPT BUGFIX\n\nTAG\u003dagy\nCONV\u003d1df5aed4-e067-499d-af15-55319a43c2f4\nCherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:1c9407ce917aa31d9f23beec26695b35f34de3a6\nMerged-In: I9a342686e569f529bb37d9c19eebbceb60f6aa9d\nChange-Id: I9a342686e569f529bb37d9c19eebbceb60f6aa9d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0944a5470ba0d253108991055b681f9df9c65878",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/locales/LocaleManagerService.java",
      "new_id": "3caa3cdcb584dbc267ac561e5b248e2419cd6ae5",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/locales/LocaleManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "4cfbb9520d5fc316672bbe065ff67c57c2e02b7a",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java",
      "new_id": "425f720f1a8edfdd803cdcdb6dcc06690ac680ec",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/locales/LocaleManagerServiceTest.java"
    }
  ]
}
