[PR #5063] [MERGED] IDOR fixes #4409

Closed
opened 2026-04-25 00:19:38 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/5063
Author: @mandreko
Created: 2/16/2026
Status: Merged
Merged: 3/8/2026
Merged by: @advplyr

Base: masterHead: idor-fixes


📝 Commits (3)

📊 Changes

2 files changed (+680 additions, -4 deletions)

View changed files

📝 server/controllers/MeController.js (+44 -4)
test/server/controllers/MeController.test.js (+636 -0)

📄 Description

Brief summary

This code should add authorization checks in the MeController.js to prevent an obscure IDOR vulnerability.

Which issue is fixed?

Fixes #5062

In-depth Description

This PR fixes 3 IDOR (Insecure Direct Object Reference) vulnerabilities in the MeController that allowed authenticated users to access and manipulate resources belonging to other users.

  1. IDOR in Media Progress Deletion
  2. Missing Authorization in Bookmark Operations
  3. IDOR in Listening Sessions

These issues would allow:

  • Users could delete any media progress record by ID
  • Users could create/modify/delete bookmarks for restricted content
  • Users could view listening sessions for content they shouldn't access

I attempted to follow code conventions where I saw. But feel free to make modifications as needed ;)

How have you tested this?

I added supporting unit tests (lots of copy/paste since I'm not a huge js developer)

Screenshots


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf/pull/5063 **Author:** [@mandreko](https://github.com/mandreko) **Created:** 2/16/2026 **Status:** ✅ Merged **Merged:** 3/8/2026 **Merged by:** [@advplyr](https://github.com/advplyr) **Base:** `master` ← **Head:** `idor-fixes` --- ### 📝 Commits (3) - [`ade1752`](https://github.com/advplyr/audiobookshelf/commit/ade1752e979216bcc206cc423a1a7a89978204e1) Fix IDOR bugs - [`e5af2f3`](https://github.com/advplyr/audiobookshelf/commit/e5af2f336bc2b4571e593eec9a6379e65659cec3) Move file to correct folder... - [`2f2d026`](https://github.com/advplyr/audiobookshelf/commit/2f2d026b06730aa2233f9aa4a98ccd40ef78a126) Auto format ### 📊 Changes **2 files changed** (+680 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `server/controllers/MeController.js` (+44 -4) ➕ `test/server/controllers/MeController.test.js` (+636 -0) </details> ### 📄 Description ## Brief summary This code should add authorization checks in the `MeController.js` to prevent an obscure IDOR vulnerability. ## Which issue is fixed? Fixes #5062 ## In-depth Description This PR fixes 3 IDOR (Insecure Direct Object Reference) vulnerabilities in the MeController that allowed authenticated users to access and manipulate resources belonging to other users. 1. IDOR in Media Progress Deletion 2. Missing Authorization in Bookmark Operations 3. IDOR in Listening Sessions These issues would allow: - Users could delete any media progress record by ID - Users could create/modify/delete bookmarks for restricted content - Users could view listening sessions for content they shouldn't access I attempted to follow code conventions where I saw. But feel free to make modifications as needed ;) ## How have you tested this? I added supporting unit tests (lots of copy/paste since I'm not a huge js developer) ## Screenshots <!-- If your PR includes any changes to the web client, please include screenshots or a short video from before and after your changes. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:19:38 +02:00
adam closed this issue 2026-04-25 00:19:38 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#4409