This release includes 3 security fixes for security teams reviewing exposed deployments.
Affected surfaces
ReleasePort's take
Light signalThe release updates Django from 6.0.4 to 6.0.5, fixing three security vulnerabilities: CVE-2026-6907 (cache leak), CVE-2026-35192 (persistent session cookies), and CVE-2026-5766 (multipart form parsing).
Why it matters: Patch Django to version 6.0.5 immediately; the update resolves three CVEs that could expose cache data, hijack sessions, or allow malformed multipart uploads.
Summary
AI summaryBroad release touches Auto-Sync Overhaul, Stream Proxy, Comskip Enhancements, and ✨ New Features.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Updated Django from 6.0.4 to 6.0.5, fixing three vulnerabilities: CVE-2026-6907 (cache leak), CVE-2026-35192 (persistent session cookies), CVE-2026-5766 (multipart form parsing). Updated Django from 6.0.4 to 6.0.5, fixing three vulnerabilities: CVE-2026-6907 (cache leak), CVE-2026-35192 (persistent session cookies), CVE-2026-5766 (multipart form parsing). Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Adds Output Profiles for custom FFmpeg transcoding and fMP4 streaming support. Adds Output Profiles for custom FFmpeg transcoding and fMP4 streaming support. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds HDHR output profile support via URL path segment. Adds HDHR output profile support via URL path segment. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds Comskip "Mark" mode and hardware‑accelerated options (NVDEC, Quick Sync). Adds Comskip "Mark" mode and hardware‑accelerated options (NVDEC, Quick Sync). Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Enhances DVR series rules with rich matching modes, live preview pane, and per‑rule editing UI. Enhances DVR series rules with rich matching modes, live preview pane, and per‑rule editing UI. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds EPG Program Search API with full‑text boolean, regex, and pagination support. Adds EPG Program Search API with full‑text boolean, regex, and pagination support. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds per‑user IP/CIDR network allowlists with reset command. Adds per‑user IP/CIDR network allowlists with reset command. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Performance | Medium |
Improves stability and performance under load with cooperative multitasking, connection pooling fixes, and EPG caching. Improves stability and performance under load with cooperative multitasking, connection pooling fixes, and EPG caching. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Fixes race condition causing cleanup watchdog to stop connecting channels, preventing indefinite viewer wait. Fixes race condition causing cleanup watchdog to stop connecting channels, preventing indefinite viewer wait. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Reorganizes Stream Proxy into a cleaner internal structure without changing MPEG‑TS behavior. Reorganizes Stream Proxy into a cleaner internal structure without changing MPEG‑TS behavior. Source: llm_adapter@2026-05-23 Confidence: low |
— |
Full changelog
✨ New Features
Output Profiles & fMP4 Streaming
- Admins can now define named Output Profiles under Settings → Output Profiles. Each profile specifies custom FFmpeg parameters to transcode streams on-the-fly - for example, re-encoding audio from AC3 to AAC for browser and mobile clients while the native stream continues serving Plex/Emby/Jellyfin. Multiple clients requesting the same profile share a single transcode process. (Closes #407)
- Two built-in profiles are included out of the box: Media Server (AC3 Audio) and Web Player (AAC Audio).
- Dispatcharr can now serve live channels as fragmented MP4 (fMP4) in addition to MPEG-TS. The output format can be selected via a query parameter on the stream URL, a per-user default set by an admin, or a server-wide default in Stream Settings.
- A "Web Player Output Profile" setting under Settings → UI Settings lets each browser independently choose which output profile (if any) is applied when previewing streams in the built-in floating player. This is saved per-browser and does not affect your account's default.
- The expanded client row on the Stats page now shows the container format (
mpegtsorfmp4) and the active output profile name for each connected client.
HDHR Output Profile Support
- HDHomeRun lineup URLs now support an
output_profilepath segment so HDHR-aware clients (Plex, Channels DVR, Emby, etc.) can request a specific transcode profile directly in the URL - no query parameter support required. - A new "HDHR Default Output Profile" setting in Settings → Stream Settings lets admins choose a profile applied to all HDHR stream URLs that don't include one in the path.
Comskip Enhancements
- DVR Settings now includes a "Comskip mode" option:
- Cut (default): FFmpeg permanently removes commercial segments from the recording file after detection.
- Mark: the recording file is left untouched; an EDL file is saved alongside it for players that support EDL-based commercial skipping (e.g., Kodi).
- A "Hardware acceleration" option is now available for Comskip to reduce CPU load during commercial detection on capable hosts:
- None (default): software decode.
- NVIDIA NVDEC: requires the NVIDIA container toolkit and a supported GPU.
- Intel Quick Sync: requires an Intel iGPU or ARC GPU exposed to the container.
DVR Series Rules Enhancements
- Series recording rules no longer require an EPG channel. Rules with only a title or description filter now search across all EPG channels in the 7-day horizon. (Closes #570)
- Rules now support rich matching modes on both title and description:
exact,contains, boolean search (AND/OR with quoted phrases, parenthetical grouping), whole-word, and regex. - A new series rule editor modal includes a debounced live preview pane showing which upcoming programs a candidate rule would match - without saving anything. An orange warning appears when more than 50 programs match.
- A "Customize rule..." link in the program record-choice dialog opens the editor pre-filled with the program's details. The series rules modal also gains an "Add rule" button and a per-rule "Edit" button.
- A pinned channel option lets you lock a rule's recordings to a specific channel instead of the default (lowest-numbered channel for the EPG source).
About Modal
- A
?button in the sidebar footer opens an About dialog showing the current version, links to Documentation, Discord, GitHub, and Open Collective, a contributors acknowledgment, and a memorial note for Jesse Mann. Visible in both expanded and collapsed sidebar states.
EPG Program Search API
- A new API endpoint supports rich querying of EPG program data with full-text search (boolean AND/OR, quoted phrases, parenthetical grouping, whole-word and regex modes), time-range filters, channel/stream/group filters, field selection, and pagination. Results are scoped to channels each user can access. Full Swagger/OpenAPI documentation is available. - Thanks @northernpowerhouse
Per-User IP/CIDR Network Allowlists
- Admins can now assign IP address and CIDR range restrictions to individual user accounts via the API & XC tab on the user edit form. Requests from IPs outside a user's configured ranges are rejected with
403 Forbidden; users with no configured ranges continue to inherit the global network access policy. - Thanks @sethwv - A new
reset_user_networkmanagement command (manage.py reset_user_network <username>) clears a user's per-account IP restriction, restoring global-policy inheritance. - Thanks @sethwv
Auto-Sync Overhaul
- The M3U auto-channel-sync system has been comprehensively rebuilt with many new capabilities. (Closes #1196) - Thanks @CodeBormen:
- Per-field channel overrides: manually set any channel field (name, number, group, logo, EPG, stream profile) on an auto-synced channel. Your values survive future syncs. A reset icon on each overridden field lets you revert to the provider's value at any time.
- Auto-created channel attribution: the channel edit form now shows which M3U account and stream produced the channel.
- Hide-from-output flag: exclude a channel from all output (HDHR, M3U, EPG, XC) without deleting it. Hidden channels are preserved across syncs and shown with an eye-off icon in the channels table.
- Channel number ranges per group: configure a start and end channel number for each group. Streams that don't fit within the range are surfaced in the failure detail modal with a
RANGE_EXHAUSTEDreason. - Numbering modes per group: choose how channel numbers are assigned - Provider (use the M3U-supplied number, fall back to next available), Next Available (always lowest free from 1), or Fixed Sequential (pick sequentially from the configured start).
- Per-group Configure modal: a gear icon on each group row opens advanced options including channel sort order, compact numbering with a "Re-pack now" button, group override (merge multiple provider groups into one logical group), name regex find/replace, exclude regex, force dummy EPG, and a live regex preview pane.
- Compact numbering: when enabled, visible channels pack sequentially into the configured range. Hidden channels don't occupy slots; un-hiding shifts visible numbers down to fill the gap.
- Orphan channel cleanup modes (per M3U account):
Always(default - remove channels whose source stream is gone),Preserve Customized(keep channels that have overrides), orNever(keep all orphans). Hidden channels are always preserved regardless of mode. - Bulk hide/unhide: select any number of channels and toggle their hidden status in a single action.
- Multi-provider shared range merging: two M3U accounts can target the same group with overlapping number ranges and channels are assigned without colliding.
- Multi-stream channel safety: a channel with a user-added second stream is no longer deleted when one of its source streams disappears from the provider.
- Failure modal grouped by reason: auto-sync failure details are grouped by
RANGE_EXHAUSTED,INTEGRITY_ERROR, andOTHERwith collapsible sections. The notification auto-close timeout extends from 4s to 12s when failures are present. - Delete Playlist preview: the M3U account delete confirmation now shows the exact count (and sample names) of auto-created channels that will be removed before you confirm.
- Selection summary in bulk edit: the bulk edit form shows how many selected channels are auto-synced vs. manual.
- Visibility and override filters: the channels table header gains a visibility selector (Active Only / Hidden Only / Show All) and a "Has Overrides" filter. Rows with active overrides show a pencil icon whose tooltip lists the overridden fields.
- Live overlap warning: editing channel number ranges in the group settings page shows an inline warning when ranges across providers overlap or would conflict with existing channels (requires at least one prior sync per account).
- Duplicate channel numbers permitted: channels can share a number (e.g., set via override or manually); the sync process still avoids assigning the same number to two newly-created channels in a single run.
Shift+Click and Ctrl+Click Row Selection
- Tables now support keyboard-modifier selection in addition to checkboxes:
- Shift+click: extends selection from the last-clicked row to the current row.
- Ctrl+click (Cmd+click on Mac): toggles a single row in or out of the selection without disturbing other selected rows.
🔄 Changes & Improvements
Global Network Access Settings
- The IP/CIDR range inputs in the Network Access settings panel now use a tag-style chip interface, making it easier to add, review, and remove individual addresses or ranges. - Thanks @sethwv
Settings Organization
- Preferred Region and Auto-Import Mapped Files have been moved from Stream Settings to System Settings, where they better fit as server-wide behavior settings. Existing values are migrated automatically.
- Inline descriptions have been added to Stream Settings fields (Default User Agent, Default Stream Profile, Default Output Format, M3U Hash Key, HDHR Default Output Profile) and System Settings fields (Maximum System Events, Preferred Region, Auto-Import Mapped Files) to explain their purpose and effect.
Series Rules Modal
- Rules now display a one-line summary including the title-match mode, description filter (when present), and a "Pinned channel" badge when a channel is configured. "Add rule" and "Edit" buttons provide quick access to the new rule editor.
Comskip Configuration
- The shipped Comskip configuration file has been thoroughly documented, covering all major tunable sections with inline explanations and source references. Key defaults: all seven detection methods enabled, Kodi-compatible EDL action codes, and the stats text file suppressed by default.
- The Comskip enable switch in DVR Settings has been relabeled to "Enable Comskip (commercial detection after recording)" to remain accurate in both Cut and Mark modes.
XC API
- The
user_infoblock now advertisesmp4as a supported output format (in addition tots), enabling XC-compatible clients that support fMP4 to request.mp4stream URLs.
Stream Proxy
- The live-streaming proxy has been reorganized into a cleaner internal structure. Existing MPEG-TS behavior is unchanged.
- The four in-app preview buttons (Channels table, channel stream list, Streams table, Stats client row) now always request MPEG-TS output so the built-in player receives a compatible stream regardless of your account's configured default format.
Stability & Performance Under Load
- Dispatcharr's web workers now use cooperative multitasking for database and network I/O. This prevents one slow operation from blocking all connections on the same worker and resolves several issues that were silently affecting stability.
- Starting FFmpeg for stream proxying no longer risks stalling the web server under concurrent load.
- Real-time page updates (channel status, stream stats) now reliably reach connected browsers from all parts of the application. Previously, updates triggered from web requests were silently dropped.
- Database connections are now released after each request, preventing connection pool exhaustion during periods of high concurrent activity.
- The EPG output is now cached in a single shared location rather than separately in each worker process, significantly reducing peak memory use on multi-worker setups.
Frontend Testing
GroupManager,LiveGroupFilter,LoginForm, andLogocomponents now have unit test suites (144 tests total) covering rendering, user interactions, and API integration. - Thanks @nick4810AutoSyncAdvancedandLogoFormcomponents are now lazy-loaded in the M3U group filter, reducing initial page load time. - Thanks @nick4810
🐛 Bug Fixes
Streaming & Proxy
- Fixed a race condition where the cleanup watchdog could stop a channel that was still connecting, leaving viewers stuck waiting indefinitely.
- Fixed a ~2-second "stream thread did not terminate within timeout" warning appearing in logs on every channel stop.
- Fixed redundant shutdown log entries being produced on every channel stop.
- Fixed the channel card "started at" tooltip in Stats jumping by up to 1 second on every stats poll.
DVR
- Fixed DVR settings form briefly flashing stale values during a save.
- Fixed the recurring rule edit modal always showing a blank Channel field when opened from the DVR page.
- Fixed "Currently Recording," "Upcoming Recordings," and "Previously Recorded" section count badges appearing at the far right of the screen instead of next to their headings.
Xtream Codes
- Fixed XC profile expiry date not being updated when an account was refreshed.
- Fixed XC server sub-path URLs being stripped down to the root path, causing requests to fail when a provider serves its API from a non-root path (e.g.,
http://server/Pluto/gb/player_api.php). (Fixes #1218)
Plugins
- Fixed plugin event dispatch stopping on the first disabled plugin encountered, preventing all subsequent enabled plugins from receiving the event. (Fixes #1231) - Thanks @R3XCHRIS
- Fixed plugin periodic tasks missing the first scheduled execution after every Celery worker restart. (Fixes #1244) - Thanks @R3XCHRIS
- Fixed plugin monkey-patches and signal registrations not being applied in uWSGI workers, causing plugins that hook into request handling to be silently inactive until a Connect event happened to load them in that worker.
Channels Table
- Fixed shift+click range selection not working correctly after row memoization was introduced; selections now always extend from the correct anchor row.
- Fixed selected rows not showing the teal highlight.
- Fixed an event listener registered by the channels table not being cleaned up when the component unmounts.
M3U
- Fixed the M3U filter delete confirmation showing a blank "Type:" field and displaying "Patter:" instead of "Pattern:". - Thanks @nick4810
- Fixed a long filename in the M3U file upload input expanding the modal beyond its bounds; long filenames are now clipped with an ellipsis. - Thanks @nick4810
Bulk Channel Edit
- Fixed bulk channel edit silently showing no feedback when the save was rejected by the server. A descriptive error toast is now shown and the form stays open so the issue can be corrected and resubmitted. - Thanks @CodeBormen
Authentication
- Fixed the login loading spinner not being cleared after a successful login. - Thanks @nick4810
🔒 Security
- Updated
Django6.0.4 → 6.0.5, resolving 3 security vulnerabilities:- Cache leak exposing sensitive information via a
cache.get_or_set()race condition (CVE-2026-6907) - Persistent session cookies retaining sensitive information after logout (CVE-2026-35192)
- Improper handling of length parameter inconsistency in multipart form parsing (CVE-2026-5766)
- Cache leak exposing sensitive information via a
Security Fixes
- CVE-2026-6907 — Django cache race condition exposing sensitive information.
- CVE-2026-35192 — Persistent session cookies retaining data after logout.
- CVE-2026-5766 — Multipart form parsing length inconsistency vulnerability.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Dispatcharr
Open-source IPTV stream management platform for consolidating multiple providers, managing EPG data, and sharing content with advanced control features
Related context
Related tools
Beta — feedback welcome: [email protected]