{"github_data": {"sha": "5610c167a17b0898d93d0588a0df81c03306ac52", "node_id": "C_kwDOAducuNoAKDU2MTBjMTY3YTE3YjA4OThkOTNkMDU4OGEwZGY4MWMwMzMwNmFjNTI", "commit": {"author": {"name": "JonnyWong16", "email": "9099342+JonnyWong16@users.noreply.github.com", "date": "2026-03-28T00:46:41Z"}, "committer": {"name": "JonnyWong16", "email": "9099342+JonnyWong16@users.noreply.github.com", "date": "2026-03-28T00:46:41Z"}, "message": "v2.17.0", "tree": {"sha": "3d24d369133798d8343e50c6bf5143c55d09f6df", "url": "https://api.github.com/repos/Tautulli/Tautulli/git/trees/3d24d369133798d8343e50c6bf5143c55d09f6df"}, "url": "https://api.github.com/repos/Tautulli/Tautulli/git/commits/5610c167a17b0898d93d0588a0df81c03306ac52", "comment_count": 0, "verification": {"verified": true, "reason": "valid", "signature": "-----BEGIN PGP SIGNATURE-----\n\niQIzBAABCAAdFiEE/AYfcug8u49k3WJym/TvTexBFjoFAmnHJPEACgkQm/TvTexB\nFjqH8w/+K7D3vj7S88kMkxxsrWZXpJnVPveNLVi+dYbHwfFAKhZZ6j7+gKNRl+lV\nVKGY1Qto/3VdqrDWN1yHLkYJAXXOoKaC3rON5uauKoYwGYeivaenHoCgJPtZYD1A\nYU7+exiDBfinu/qSU+PlWGhP4cgR9KrKFZBGgRGkAMGNcsKrXo7KW7BdRZbKAwSz\nUw/82Vh6YR+VAArrkGYJAveOZBRyKHBTfcYLWXlU2YXs9MljFClGoyZSA+V0349x\na79WY/VJQ/XvS0ZcLCsoMuvmEwZacB7s/L4GhDoL0cWftkR68cf0hhjxl/ALLW4b\nnMH5ggCP7HatGRGW1TPxX06FZNEz+oQtOKdCYtlTXl56/Z5GrVKv2sRUhTCRHG7R\niVRTwxmDRz3Q784MTcx1dfWAOkCVMpc5HpkErpv527ZSEnp1cLCLIwjwRqwWUCSq\nRWXwZtXLzThXANYHtFRRkF5hdEqR7jPc3B+cr+ovVp0UjuWvZDQvyboduv4ToYSo\nCW4MAaUu0uzHHScwpf6wx4c2R7tL4Pl57byWT66uwmjeUVNaWl44StBV+GPLtOF/\nVYAfMsWv0ZocTzp/PrXZXwOFoXziVMiBg6t3npJDq5IlH/NjqHxz0h2okbeyRXwr\nvuuMci6EsTkeze67C9wpFWZR9CR2WPsGQ9Wj7yZLMmvb67xLyJM=\n=gj4w\n-----END PGP SIGNATURE-----", "payload": "tree 3d24d369133798d8343e50c6bf5143c55d09f6df\nparent 0afc5b7e50c4d86977bfd7fc583643e2925475cc\nauthor JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> 1774658801 -0700\ncommitter JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> 1774658801 -0700\n\nv2.17.0\n", "verified_at": "2026-03-28T00:47:18Z"}}, "url": "https://api.github.com/repos/Tautulli/Tautulli/commits/5610c167a17b0898d93d0588a0df81c03306ac52", "html_url": "https://github.com/Tautulli/Tautulli/commit/5610c167a17b0898d93d0588a0df81c03306ac52", "comments_url": "https://api.github.com/repos/Tautulli/Tautulli/commits/5610c167a17b0898d93d0588a0df81c03306ac52/comments", "author": {"login": "JonnyWong16", "id": 9099342, "node_id": "MDQ6VXNlcjkwOTkzNDI=", "avatar_url": "https://avatars.githubusercontent.com/u/9099342?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JonnyWong16", "html_url": "https://github.com/JonnyWong16", "followers_url": "https://api.github.com/users/JonnyWong16/followers", "following_url": "https://api.github.com/users/JonnyWong16/following{/other_user}", "gists_url": "https://api.github.com/users/JonnyWong16/gists{/gist_id}", "starred_url": "https://api.github.com/users/JonnyWong16/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JonnyWong16/subscriptions", "organizations_url": "https://api.github.com/users/JonnyWong16/orgs", "repos_url": "https://api.github.com/users/JonnyWong16/repos", "events_url": "https://api.github.com/users/JonnyWong16/events{/privacy}", "received_events_url": "https://api.github.com/users/JonnyWong16/received_events", "type": "User", "user_view_type": "public", "site_admin": false}, "committer": {"login": "JonnyWong16", "id": 9099342, "node_id": "MDQ6VXNlcjkwOTkzNDI=", "avatar_url": "https://avatars.githubusercontent.com/u/9099342?v=4", "gravatar_id": "", "url": "https://api.github.com/users/JonnyWong16", "html_url": "https://github.com/JonnyWong16", "followers_url": "https://api.github.com/users/JonnyWong16/followers", "following_url": "https://api.github.com/users/JonnyWong16/following{/other_user}", "gists_url": "https://api.github.com/users/JonnyWong16/gists{/gist_id}", "starred_url": "https://api.github.com/users/JonnyWong16/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/JonnyWong16/subscriptions", "organizations_url": "https://api.github.com/users/JonnyWong16/orgs", "repos_url": "https://api.github.com/users/JonnyWong16/repos", "events_url": "https://api.github.com/users/JonnyWong16/events{/privacy}", "received_events_url": "https://api.github.com/users/JonnyWong16/received_events", "type": "User", "user_view_type": "public", "site_admin": false}, "parents": [{"sha": "0afc5b7e50c4d86977bfd7fc583643e2925475cc", "url": "https://api.github.com/repos/Tautulli/Tautulli/commits/0afc5b7e50c4d86977bfd7fc583643e2925475cc", "html_url": "https://github.com/Tautulli/Tautulli/commit/0afc5b7e50c4d86977bfd7fc583643e2925475cc"}], "stats": {"total": 41, "additions": 35, "deletions": 6}, "files": [{"sha": "7bf3c824125f5eefde848638157d567a981a6dc8", "filename": "CHANGELOG.md", "status": "modified", "additions": 34, "deletions": 5, "changes": 39, "blob_url": "https://github.com/Tautulli/Tautulli/blob/5610c167a17b0898d93d0588a0df81c03306ac52/CHANGELOG.md", "raw_url": "https://github.com/Tautulli/Tautulli/raw/5610c167a17b0898d93d0588a0df81c03306ac52/CHANGELOG.md", "contents_url": "https://api.github.com/repos/Tautulli/Tautulli/contents/CHANGELOG.md?ref=5610c167a17b0898d93d0588a0df81c03306ac52", "patch": "@@ -1,5 +1,33 @@\n # Changelog\n \n+## v2.17.0 (2026-03-27)\n+\n+* Important Note!\n+  * Several security vulnerabilities have been identified in Tautulli versions <=2.16.1. Users are strongly encouraged to update to the latest Tautulli version 2.17.x.\n+* Notifications:\n+  * Fix: Prevent RCE in notification text evaluation. (CVE-2026-28505) (Thanks @q1uf3ng)\n+* Newsletters:\n+  * Fix: Media from other video libraries using the modern Plex agents not showing up on newsletter.\n+  * Fix: Unauthenticated path traversal in /newsletter/image/images endpoint. (CVE-2026-31831) (Thanks @JakePeralta7)\n+* Exporter:\n+  * Fix: Logo images incorrectly exported as jpg instead of png.\n+  * New: Added ability to export square art images.\n+  * New: Added ability to export theme music. (#2654)\n+* Graphs:\n+  * Fix: History modal not opening when clicking on graphs. (#2652)\n+* API:\n+  * Fix: SQL injection in get_home_stats API command. (CVE-2026-31799) (Thanks @mandreko)\n+  * Fix: Unsanitized JSONP callback parameter. (CVE-2026-32275) (Thanks @mandreko)\n+  * New: Added rating to get_home_stats API command. (#2655) (Thanks @jma1ice)\n+  * Removed: get_apikey API command.\n+* Other:\n+  * Fix: Validate log path for Plex log files. (#2632)\n+  * Fix: Add authentication to /pms_image_proxy endpoint. (CVE-2026-31804) (Thanks @mandreko)\n+  * New: Updated third party donation logos. (#2646) (Thanks @aisgbnok)\n+  * New: Update Bootstrap CSS to v3.4.1 and decouple overrides (#2662) (Thanks @aisgbnok)\n+  * New: Update Bootstrap-select to v1.13.18 (#2666) (Thanks @aisgbnok)\n+\n+\n ## v2.16.1 (2026-12-15)\n \n * Notifications:\n@@ -19,14 +47,15 @@\n ## v2.16.0 (2025-09-08)\n \n * Important Note!\n-  * Several security vulnerabilities have been identified in Tautulli versions <=2.15.3 (CVE-2025-58760, CVE-2025-58761, CVE-2025-58762, CVE-2025-58763). Users are strongly encouraged to update to the latest Tautulli version 2.16.x. (Thanks @d-xuan)\n+  * Several security vulnerabilities have been identified in Tautulli versions <=2.15.3. Users are strongly encouraged to update to the latest Tautulli version 2.16.x.\n * UI:\n   * Fix: Update poster click-through overlay to new Plex logo. (#2584) (Thanks @TheMeanCanEHdian)\n * Other:\n-  * Fix: Race condition in image cache directory creation (#2580) (Thanks @keithah)\n-  * Fix: Validate image path in /image and /pms_image_proxy endpoints.\n-  * Fix: Validate image format in /pms_image_proxy endpoint.\n-  * Fix: Don't run git command with shell.\n+  * Fix: Race condition in image cache directory creation. (#2580) (Thanks @keithah)\n+  * Fix: Validate image path in /image endpoints. (CVE-2025-58760) (Thanks @d-xuan)\n+  * Fix: Validate image path in /pms_image_proxy endpoints. (CVE-2025-58761) (Thanks @d-xuan)\n+  * Fix: Validate image format in /pms_image_proxy endpoint. (CVE-2025-58762) (Thanks @d-xuan)\n+  * Fix: Don't run git command with shell. (CVE-2025-58763) (Thanks @d-xuan)\n \n \n ## v2.15.3 (2025-08-03)"}, {"sha": "cc3f780375a11070bd9355bd88b75e1ebcdf7e1f", "filename": "plexpy/version.py", "status": "modified", "additions": 1, "deletions": 1, "changes": 2, "blob_url": "https://github.com/Tautulli/Tautulli/blob/5610c167a17b0898d93d0588a0df81c03306ac52/plexpy%2Fversion.py", "raw_url": "https://github.com/Tautulli/Tautulli/raw/5610c167a17b0898d93d0588a0df81c03306ac52/plexpy%2Fversion.py", "contents_url": "https://api.github.com/repos/Tautulli/Tautulli/contents/plexpy%2Fversion.py?ref=5610c167a17b0898d93d0588a0df81c03306ac52", "patch": "@@ -16,4 +16,4 @@\n #  along with Tautulli.  If not, see <http://www.gnu.org/licenses/>.\n \n PLEXPY_BRANCH = \"master\"\n-PLEXPY_RELEASE_VERSION = \"v2.16.1\"\n\\ No newline at end of file\n+PLEXPY_RELEASE_VERSION = \"v2.17.0\"\n\\ No newline at end of file"}]}, "_cache_time": 1776938181, "_release_version": "v2.15.1"}