Skip to content

Mitigate CVE-2026-119610 in the GStreamer backend (disable rtph264depay on < 1.28.9) - #1

Open
RoadToMythicGlory wants to merge 4 commits into
mainfrom
security/cve-2026-119610
Open

RoadToMythicGlory wants to merge 4 commits into
mainfrom
security/cve-2026-119610

Conversation

@RoadToMythicGlory

@RoadToMythicGlory RoadToMythicGlory commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

Excalibur's GStreamer program-output backend is exposed to CVE-2026-119610 (GStreamer SA-2026-0095) on gst-plugins-good older than 1.28.9: RTSP inputs go through rtspsrc ! decodebin3, which autoplugs rtph264depay, and one malformed RTP packet triggers an out-of-bounds heap read.

GStreamer has not published Windows binaries for 1.28.9 yet (1.28.8 is the newest), so instead of refusing to run, this PR removes the vulnerable element:

  • media-core removes rtph264depay from the registry at startup when plugins-good is < 1.28.9, so it can never be plugged. It exits with a security error only if the element cannot be disabled.
  • Trade-off: H.264 RTP/RTSP inputs are unavailable in the GStreamer backend until GStreamer >= 1.28.9 is installed. SRT and other inputs keep working; the default FFmpeg compositor backend is unaffected.
  • gst_probe reports plugins_good_version, vulnerable_cve_2026_119610 and rtp_h264_input_disabled; the output manager logs a warning before spawning.
  • New Windows CI (media-core (Windows)): installs official GStreamer 1.28.8 (pinned SHA-256), builds media-core, runs unit tests, and checks the mitigation is applied.

Test plan

  • pytest — 183 passed
  • Windows CI: media-core builds against GStreamer 1.28.8 and logs rtph264depay disabled at startup
  • When GStreamer 1.28.9 for Windows ships: install it on the matrix box and bump GST_VERSION/GST_SHA256 in the workflow

https://claude.ai/code/session_019djRQNVy1x6waBp7puF1d7


Generated by Claude Code

…6-119610)

RTSP inputs are decoded with rtspsrc ! decodebin3, which autoplugs
rtph264depay. In gst-plugins-good < 1.28.9 a single malformed RTP packet
triggers an out-of-bounds heap read (GStreamer SA-2026-0095).

- media-core checks the loaded "rtp" plugin version after gst_init and
  exits with a security error if it is older than 1.28.9.
- gst_probe reports plugins_good_version / vulnerable_cve_2026_119610 and
  marks the environment not ready when vulnerable.
- GstProgramOutputManager refuses to spawn media-core on a vulnerable
  install and surfaces the reason in last_error.
- Tests for version parsing, the gate and the spawn refusal; README notes
  the 1.28.9 minimum.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019djRQNVy1x6waBp7puF1d7
Installs the official MSVC x86_64 runtime + devel MSIs (checksum-verified,
cached), builds media-core, fails if CMake skipped the binary, runs the
unit tests, and checks the CVE-2026-119610 startup gate accepts 1.28.9.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019djRQNVy1x6waBp7puF1d7
GStreamer 1.28 ships one Inno Setup installer instead of separate runtime
and devel MSIs, so the MSI URLs 404'd. Install it silently with the full
type, locate the root from gstreamer-1.0.pc, and fail fast on a 404
instead of retrying.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019djRQNVy1x6waBp7puF1d7
…g to run

GStreamer has not published Windows binaries for 1.28.9 (1.28.8 is the
newest), so a hard >= 1.28.9 gate would disable the GStreamer backend on
Windows with no upgrade available.

- media-core now removes rtph264depay from the registry on plugins-good
  < 1.28.9, so decodebin3 can never plug the vulnerable element. It only
  exits (code 2) if the element cannot be disabled.
- Python no longer refuses to spawn; it logs a warning and the probe
  reports rtp_h264_input_disabled.
- Windows CI builds against 1.28.8 (pinned SHA-256) and checks that the
  mitigation is applied.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019djRQNVy1x6waBp7puF1d7
@RoadToMythicGlory RoadToMythicGlory changed the title Block GStreamer backend on gst-plugins-good < 1.28.9 (CVE-2026-119610) Mitigate CVE-2026-119610 in the GStreamer backend (disable rtph264depay on < 1.28.9) Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants