mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2026-03-02 22:57:11 -05:00
restrict /api/v1/accounts exposure #6438
Labels
No labels
Component: Accessibility
Component: Administration
Component: Auth
Component: CLI
Component: Channels
Component: Chapters
Component: Comments
Component: Custom Markdown
Component: Docker 🐳
Component: Documentation 📚
Component: Email
Component: Embed
Component: Federation 🎡
Component: Import/Export
Component: Live
Component: Metadata
Component: Mobile
Component: Moderation :godmode:
Component: Notifications
Component: Object storage
Component: Observability
Component: PeerTube Plugin 📦
Component: Player ⏯️
Component: Playlist
Component: Recommendation
Component: Redundancy
Component: Registration
Component: Runners
Component: SEO
Component: Search
Component: Security
Component: Stats
Component: Studio
Component: Studio
Component: Subscriptions
Component: Subtitles 💬
Component: Transcoding
Component: Upload
Component: Video Import
Component: i18n 🔡
Priority: High
Priority: Low
Priority: Roadmap
Status: Blocked ✋
Status: In Progress 🔜
Status: To Reproduce
Status: Waiting for answer
Template not filled
Type: Bug 🐛
Type: Discussion 💭
Type: Discussion 💭
Type: Duplicate ➿
Type: Feature Request ✨
Type: Maintenance 👷♀️
Type: Performance
Type: Question
UI
good first issue
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/PeerTube#6438
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jrespeto on GitHub (Jan 31, 2026).
Describe the problem to be solved
First off, I’ve been spending time building against PeerTube recently and have been genuinely enjoying it and promoting it to my friends. It’s refreshing to work with a project that prioritizes decentralization and transparency. Thank you for all the effort you put into it.
While working on a plugin and reviewing the APIs, I noticed that /api/v1/accounts is accessible without authentication.
From a security perspective, this allows broad account enumeration, including accounts without any public-facing content. This increases the risk of scraping, profiling, and abuse with limited practical benefit for unauthenticated clients.
It would be preferable to restrict this endpoint to accounts that have public videos (or otherwise publicly visible content), aligning API exposure with intended public visibility and reducing unnecessary data exposure.
Describe the solution you would like
silently force a search filter when unauthenticated